Skip to content

fix(cu): consolidate target identity validation - #984

Closed
hqhq1025 wants to merge 4 commits into
apache:mainfrom
hqhq1025:codex/cu-target-identity-consolidated
Closed

fix(cu): consolidate target identity validation#984
hqhq1025 wants to merge 4 commits into
apache:mainfrom
hqhq1025:codex/cu-target-identity-consolidated

Conversation

@hqhq1025

@hqhq1025hqhq1025 commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Summary

Consolidates and supersedes #930, #931, #932, and #933.

  • binds coordinate mutations to the actionable source element identity;
  • validates Electron page/document identity for every pointer mutation before fallback;
  • fails closed for unknown process classification;
  • consumes the opaque element_token protocol from feat(cua-driver): add stable AX node identity tokens trycua/cua#2210;
  • requires fresh tokens for semantic click/set_value;
  • routes actionable coordinate clicks through fresh AX token dispatch, never pixel fallback;
  • keeps native type fail-closed until a focused-node token API exists;
  • preserves idempotent write/readback behavior.

Verification

  • Core full suite
  • Runtime: 1943 tests, 7 skipped, 0 fail
  • Computer Use: 144/144
  • CI will rerun on the updated head

Real-machine validation

Using a local build of trycua/cua#2210 rebased onto cua-driver 0.8.1, OpenAI gpt-5.6-sol completed:

  • AppKit AX set_value
  • AppKit AX click_element
  • multi-step set_value → fresh-token click_element, including recovery from a physical-input intervention
  • process restart recovery: stale target returned target_missing, then the model rediscovered the new PID/window and succeeded

All successful mutations used AX dispatch and recorded zero pixel dispatch.

Upstream dependency

Keep draft until trycua/cua#2210 is reviewed, merged, and released. Its fork workflows currently require maintainer approval to run.

@hqhq1025
hqhq1025force-pushed the codex/cu-target-identity-consolidated branch from b1d3ea8 to e0c1b97CompareJuly 15, 2026 10:04
@hqhq1025

Copy link
Copy Markdown
ContributorAuthor

Adversarial review removed the remaining attribute-based node substitution. Latest head 464d58b1 dispatches the exact opaque token from the consumed observation, rejects caller identity mismatches, never re-snapshots and guesses a replacement node before mutation, and preserves driver same-node changed/readback_value as internal evidence without rewriting a fresh observation. Candidate driver f15f8d87 passed real gpt-5.6-sol AppKit set_value, click, multi-step set_value→click, and restart recovery with zero pixel dispatch. This remains Draft until upstream #2210 is merged and released, then the released artifact/version/hash/provenance must be pinned and the same qualification rerun.

@hqhq1025

Copy link
Copy Markdown
ContributorAuthor

2026-07-20 dependency audit: keep this PR Draft; it is not mergeable yet. Upstream trycua/cua#2210 remains OPEN and DIRTY after maintainer review found two P1 blockers (empty Linux/Windows snapshots can panic; destructive token consumers can discard the exact retained-node binding) and one P2 blocker (cross-platform snapshot_id schema drift). Newer cua-driver prereleases up to v0.9.0 exist, but #2210 has not merged or shipped in a release, and Maka is still pinned to cua-driver-rs-v0.7.1-maka.2. The old green CI only validates the downstream adapter against its candidate protocol; it does not satisfy the release/provenance gate. A dedicated worker is now fixing #2210. Once upstream merges and releases, this branch must be rebased onto current main, the released artifact/version/hash must be pinned, and real AX qualification rerun before converting to Ready.

@hqhq1025

Copy link
Copy Markdown
ContributorAuthor

Upstream blocker update: trycua/cua#2210 has now been rebased to current upstream/main and all three maintainer findings are fixed on head c40481bd. The upstream PR is MERGEABLE (no longer DIRTY); current GitHub state is BLOCKED only by REVIEW_REQUIRED. Validation passed: core 293, macOS 152, Linux 16, Windows 32, protocol/schema 6, full cargo fmt, diff check, and conflict-free merge-tree. This downstream PR remains Draft until #2210 is merged and included in an official cua-driver release. After release, Maka still needs to pin the released version/archive/binary hashes, rebase this branch onto current main, and rerun real AX + restart qualification before converting to Ready.

@hqhq1025hqhq1025 closed this Aug 1, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@hqhq1025
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
fix(cu): consolidate target identity validation by hqhq1025 · Pull Request #984 · apache/maka · GitHub
Skip to content

fix(cu): consolidate target identity validation - #984

Closed
hqhq1025 wants to merge 4 commits into
apache:mainfrom
hqhq1025:codex/cu-target-identity-consolidated
Closed

fix(cu): consolidate target identity validation#984
hqhq1025 wants to merge 4 commits into
apache:mainfrom
hqhq1025:codex/cu-target-identity-consolidated

Conversation

@hqhq1025

@hqhq1025hqhq1025 commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Summary

Consolidates and supersedes #930, #931, #932, and #933.

  • binds coordinate mutations to the actionable source element identity;
  • validates Electron page/document identity for every pointer mutation before fallback;
  • fails closed for unknown process classification;
  • consumes the opaque element_token protocol from feat(cua-driver): add stable AX node identity tokens trycua/cua#2210;
  • requires fresh tokens for semantic click/set_value;
  • routes actionable coordinate clicks through fresh AX token dispatch, never pixel fallback;
  • keeps native type fail-closed until a focused-node token API exists;
  • preserves idempotent write/readback behavior.

Verification

  • Core full suite
  • Runtime: 1943 tests, 7 skipped, 0 fail
  • Computer Use: 144/144
  • CI will rerun on the updated head

Real-machine validation

Using a local build of trycua/cua#2210 rebased onto cua-driver 0.8.1, OpenAI gpt-5.6-sol completed:

  • AppKit AX set_value
  • AppKit AX click_element
  • multi-step set_value → fresh-token click_element, including recovery from a physical-input intervention
  • process restart recovery: stale target returned target_missing, then the model rediscovered the new PID/window and succeeded

All successful mutations used AX dispatch and recorded zero pixel dispatch.

Upstream dependency

Keep draft until trycua/cua#2210 is reviewed, merged, and released. Its fork workflows currently require maintainer approval to run.

@hqhq1025
hqhq1025force-pushed the codex/cu-target-identity-consolidated branch from b1d3ea8 to e0c1b97CompareJuly 15, 2026 10:04
@hqhq1025

Copy link
Copy Markdown
ContributorAuthor

Adversarial review removed the remaining attribute-based node substitution. Latest head 464d58b1 dispatches the exact opaque token from the consumed observation, rejects caller identity mismatches, never re-snapshots and guesses a replacement node before mutation, and preserves driver same-node changed/readback_value as internal evidence without rewriting a fresh observation. Candidate driver f15f8d87 passed real gpt-5.6-sol AppKit set_value, click, multi-step set_value→click, and restart recovery with zero pixel dispatch. This remains Draft until upstream #2210 is merged and released, then the released artifact/version/hash/provenance must be pinned and the same qualification rerun.

@hqhq1025

Copy link
Copy Markdown
ContributorAuthor

2026-07-20 dependency audit: keep this PR Draft; it is not mergeable yet. Upstream trycua/cua#2210 remains OPEN and DIRTY after maintainer review found two P1 blockers (empty Linux/Windows snapshots can panic; destructive token consumers can discard the exact retained-node binding) and one P2 blocker (cross-platform snapshot_id schema drift). Newer cua-driver prereleases up to v0.9.0 exist, but #2210 has not merged or shipped in a release, and Maka is still pinned to cua-driver-rs-v0.7.1-maka.2. The old green CI only validates the downstream adapter against its candidate protocol; it does not satisfy the release/provenance gate. A dedicated worker is now fixing #2210. Once upstream merges and releases, this branch must be rebased onto current main, the released artifact/version/hash must be pinned, and real AX qualification rerun before converting to Ready.

@hqhq1025

Copy link
Copy Markdown
ContributorAuthor

Upstream blocker update: trycua/cua#2210 has now been rebased to current upstream/main and all three maintainer findings are fixed on head c40481bd. The upstream PR is MERGEABLE (no longer DIRTY); current GitHub state is BLOCKED only by REVIEW_REQUIRED. Validation passed: core 293, macOS 152, Linux 16, Windows 32, protocol/schema 6, full cargo fmt, diff check, and conflict-free merge-tree. This downstream PR remains Draft until #2210 is merged and included in an official cua-driver release. After release, Maka still needs to pin the released version/archive/binary hashes, rebase this branch onto current main, and rerun real AX + restart qualification before converting to Ready.

@hqhq1025hqhq1025 closed this Aug 1, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@hqhq1025
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix(cu): consolidate target identity validation by hqhq1025 · Pull Request #984 · apache/maka · GitHub
Skip to content

fix(cu): consolidate target identity validation - #984

Closed
hqhq1025 wants to merge 4 commits into
apache:mainfrom
hqhq1025:codex/cu-target-identity-consolidated
Closed

fix(cu): consolidate target identity validation#984
hqhq1025 wants to merge 4 commits into
apache:mainfrom
hqhq1025:codex/cu-target-identity-consolidated

Conversation

@hqhq1025

@hqhq1025hqhq1025 commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Summary

Consolidates and supersedes #930, #931, #932, and #933.

  • binds coordinate mutations to the actionable source element identity;
  • validates Electron page/document identity for every pointer mutation before fallback;
  • fails closed for unknown process classification;
  • consumes the opaque element_token protocol from feat(cua-driver): add stable AX node identity tokens trycua/cua#2210;
  • requires fresh tokens for semantic click/set_value;
  • routes actionable coordinate clicks through fresh AX token dispatch, never pixel fallback;
  • keeps native type fail-closed until a focused-node token API exists;
  • preserves idempotent write/readback behavior.

Verification

  • Core full suite
  • Runtime: 1943 tests, 7 skipped, 0 fail
  • Computer Use: 144/144
  • CI will rerun on the updated head

Real-machine validation

Using a local build of trycua/cua#2210 rebased onto cua-driver 0.8.1, OpenAI gpt-5.6-sol completed:

  • AppKit AX set_value
  • AppKit AX click_element
  • multi-step set_value → fresh-token click_element, including recovery from a physical-input intervention
  • process restart recovery: stale target returned target_missing, then the model rediscovered the new PID/window and succeeded

All successful mutations used AX dispatch and recorded zero pixel dispatch.

Upstream dependency

Keep draft until trycua/cua#2210 is reviewed, merged, and released. Its fork workflows currently require maintainer approval to run.

@hqhq1025
hqhq1025force-pushed the codex/cu-target-identity-consolidated branch from b1d3ea8 to e0c1b97CompareJuly 15, 2026 10:04
@hqhq1025

Copy link
Copy Markdown
ContributorAuthor

Adversarial review removed the remaining attribute-based node substitution. Latest head 464d58b1 dispatches the exact opaque token from the consumed observation, rejects caller identity mismatches, never re-snapshots and guesses a replacement node before mutation, and preserves driver same-node changed/readback_value as internal evidence without rewriting a fresh observation. Candidate driver f15f8d87 passed real gpt-5.6-sol AppKit set_value, click, multi-step set_value→click, and restart recovery with zero pixel dispatch. This remains Draft until upstream #2210 is merged and released, then the released artifact/version/hash/provenance must be pinned and the same qualification rerun.

@hqhq1025

Copy link
Copy Markdown
ContributorAuthor

2026-07-20 dependency audit: keep this PR Draft; it is not mergeable yet. Upstream trycua/cua#2210 remains OPEN and DIRTY after maintainer review found two P1 blockers (empty Linux/Windows snapshots can panic; destructive token consumers can discard the exact retained-node binding) and one P2 blocker (cross-platform snapshot_id schema drift). Newer cua-driver prereleases up to v0.9.0 exist, but #2210 has not merged or shipped in a release, and Maka is still pinned to cua-driver-rs-v0.7.1-maka.2. The old green CI only validates the downstream adapter against its candidate protocol; it does not satisfy the release/provenance gate. A dedicated worker is now fixing #2210. Once upstream merges and releases, this branch must be rebased onto current main, the released artifact/version/hash must be pinned, and real AX qualification rerun before converting to Ready.

@hqhq1025

Copy link
Copy Markdown
ContributorAuthor

Upstream blocker update: trycua/cua#2210 has now been rebased to current upstream/main and all three maintainer findings are fixed on head c40481bd. The upstream PR is MERGEABLE (no longer DIRTY); current GitHub state is BLOCKED only by REVIEW_REQUIRED. Validation passed: core 293, macOS 152, Linux 16, Windows 32, protocol/schema 6, full cargo fmt, diff check, and conflict-free merge-tree. This downstream PR remains Draft until #2210 is merged and included in an official cua-driver release. After release, Maka still needs to pin the released version/archive/binary hashes, rebase this branch onto current main, and rerun real AX + restart qualification before converting to Ready.

@hqhq1025hqhq1025 closed this Aug 1, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@hqhq1025
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix(cu): consolidate target identity validation by hqhq1025 · Pull Request #984 · apache/maka · GitHub
Skip to content

fix(cu): consolidate target identity validation - #984

Closed
hqhq1025 wants to merge 4 commits into
apache:mainfrom
hqhq1025:codex/cu-target-identity-consolidated
Closed

fix(cu): consolidate target identity validation#984
hqhq1025 wants to merge 4 commits into
apache:mainfrom
hqhq1025:codex/cu-target-identity-consolidated

Conversation

@hqhq1025

@hqhq1025hqhq1025 commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Summary

Consolidates and supersedes #930, #931, #932, and #933.

  • binds coordinate mutations to the actionable source element identity;
  • validates Electron page/document identity for every pointer mutation before fallback;
  • fails closed for unknown process classification;
  • consumes the opaque element_token protocol from feat(cua-driver): add stable AX node identity tokens trycua/cua#2210;
  • requires fresh tokens for semantic click/set_value;
  • routes actionable coordinate clicks through fresh AX token dispatch, never pixel fallback;
  • keeps native type fail-closed until a focused-node token API exists;
  • preserves idempotent write/readback behavior.

Verification

  • Core full suite
  • Runtime: 1943 tests, 7 skipped, 0 fail
  • Computer Use: 144/144
  • CI will rerun on the updated head

Real-machine validation

Using a local build of trycua/cua#2210 rebased onto cua-driver 0.8.1, OpenAI gpt-5.6-sol completed:

  • AppKit AX set_value
  • AppKit AX click_element
  • multi-step set_value → fresh-token click_element, including recovery from a physical-input intervention
  • process restart recovery: stale target returned target_missing, then the model rediscovered the new PID/window and succeeded

All successful mutations used AX dispatch and recorded zero pixel dispatch.

Upstream dependency

Keep draft until trycua/cua#2210 is reviewed, merged, and released. Its fork workflows currently require maintainer approval to run.

@hqhq1025
hqhq1025force-pushed the codex/cu-target-identity-consolidated branch from b1d3ea8 to e0c1b97CompareJuly 15, 2026 10:04
@hqhq1025

Copy link
Copy Markdown
ContributorAuthor

Adversarial review removed the remaining attribute-based node substitution. Latest head 464d58b1 dispatches the exact opaque token from the consumed observation, rejects caller identity mismatches, never re-snapshots and guesses a replacement node before mutation, and preserves driver same-node changed/readback_value as internal evidence without rewriting a fresh observation. Candidate driver f15f8d87 passed real gpt-5.6-sol AppKit set_value, click, multi-step set_value→click, and restart recovery with zero pixel dispatch. This remains Draft until upstream #2210 is merged and released, then the released artifact/version/hash/provenance must be pinned and the same qualification rerun.

@hqhq1025

Copy link
Copy Markdown
ContributorAuthor

2026-07-20 dependency audit: keep this PR Draft; it is not mergeable yet. Upstream trycua/cua#2210 remains OPEN and DIRTY after maintainer review found two P1 blockers (empty Linux/Windows snapshots can panic; destructive token consumers can discard the exact retained-node binding) and one P2 blocker (cross-platform snapshot_id schema drift). Newer cua-driver prereleases up to v0.9.0 exist, but #2210 has not merged or shipped in a release, and Maka is still pinned to cua-driver-rs-v0.7.1-maka.2. The old green CI only validates the downstream adapter against its candidate protocol; it does not satisfy the release/provenance gate. A dedicated worker is now fixing #2210. Once upstream merges and releases, this branch must be rebased onto current main, the released artifact/version/hash must be pinned, and real AX qualification rerun before converting to Ready.

@hqhq1025

Copy link
Copy Markdown
ContributorAuthor

Upstream blocker update: trycua/cua#2210 has now been rebased to current upstream/main and all three maintainer findings are fixed on head c40481bd. The upstream PR is MERGEABLE (no longer DIRTY); current GitHub state is BLOCKED only by REVIEW_REQUIRED. Validation passed: core 293, macOS 152, Linux 16, Windows 32, protocol/schema 6, full cargo fmt, diff check, and conflict-free merge-tree. This downstream PR remains Draft until #2210 is merged and included in an official cua-driver release. After release, Maka still needs to pin the released version/archive/binary hashes, rebase this branch onto current main, and rerun real AX + restart qualification before converting to Ready.

@hqhq1025hqhq1025 closed this Aug 1, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@hqhq1025
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' fix(cu): consolidate target identity validation by hqhq1025 · Pull Request #984 · apache/maka · GitHub
Skip to content

fix(cu): consolidate target identity validation - #984

Closed
hqhq1025 wants to merge 4 commits into
apache:mainfrom
hqhq1025:codex/cu-target-identity-consolidated
Closed

fix(cu): consolidate target identity validation#984
hqhq1025 wants to merge 4 commits into
apache:mainfrom
hqhq1025:codex/cu-target-identity-consolidated

Conversation

@hqhq1025

@hqhq1025hqhq1025 commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Summary

Consolidates and supersedes #930, #931, #932, and #933.

  • binds coordinate mutations to the actionable source element identity;
  • validates Electron page/document identity for every pointer mutation before fallback;
  • fails closed for unknown process classification;
  • consumes the opaque element_token protocol from feat(cua-driver): add stable AX node identity tokens trycua/cua#2210;
  • requires fresh tokens for semantic click/set_value;
  • routes actionable coordinate clicks through fresh AX token dispatch, never pixel fallback;
  • keeps native type fail-closed until a focused-node token API exists;
  • preserves idempotent write/readback behavior.

Verification

  • Core full suite
  • Runtime: 1943 tests, 7 skipped, 0 fail
  • Computer Use: 144/144
  • CI will rerun on the updated head

Real-machine validation

Using a local build of trycua/cua#2210 rebased onto cua-driver 0.8.1, OpenAI gpt-5.6-sol completed:

  • AppKit AX set_value
  • AppKit AX click_element
  • multi-step set_value → fresh-token click_element, including recovery from a physical-input intervention
  • process restart recovery: stale target returned target_missing, then the model rediscovered the new PID/window and succeeded

All successful mutations used AX dispatch and recorded zero pixel dispatch.

Upstream dependency

Keep draft until trycua/cua#2210 is reviewed, merged, and released. Its fork workflows currently require maintainer approval to run.

@hqhq1025
hqhq1025force-pushed the codex/cu-target-identity-consolidated branch from b1d3ea8 to e0c1b97CompareJuly 15, 2026 10:04
@hqhq1025

Copy link
Copy Markdown
ContributorAuthor

Adversarial review removed the remaining attribute-based node substitution. Latest head 464d58b1 dispatches the exact opaque token from the consumed observation, rejects caller identity mismatches, never re-snapshots and guesses a replacement node before mutation, and preserves driver same-node changed/readback_value as internal evidence without rewriting a fresh observation. Candidate driver f15f8d87 passed real gpt-5.6-sol AppKit set_value, click, multi-step set_value→click, and restart recovery with zero pixel dispatch. This remains Draft until upstream #2210 is merged and released, then the released artifact/version/hash/provenance must be pinned and the same qualification rerun.

@hqhq1025

Copy link
Copy Markdown
ContributorAuthor

2026-07-20 dependency audit: keep this PR Draft; it is not mergeable yet. Upstream trycua/cua#2210 remains OPEN and DIRTY after maintainer review found two P1 blockers (empty Linux/Windows snapshots can panic; destructive token consumers can discard the exact retained-node binding) and one P2 blocker (cross-platform snapshot_id schema drift). Newer cua-driver prereleases up to v0.9.0 exist, but #2210 has not merged or shipped in a release, and Maka is still pinned to cua-driver-rs-v0.7.1-maka.2. The old green CI only validates the downstream adapter against its candidate protocol; it does not satisfy the release/provenance gate. A dedicated worker is now fixing #2210. Once upstream merges and releases, this branch must be rebased onto current main, the released artifact/version/hash must be pinned, and real AX qualification rerun before converting to Ready.

@hqhq1025

Copy link
Copy Markdown
ContributorAuthor

Upstream blocker update: trycua/cua#2210 has now been rebased to current upstream/main and all three maintainer findings are fixed on head c40481bd. The upstream PR is MERGEABLE (no longer DIRTY); current GitHub state is BLOCKED only by REVIEW_REQUIRED. Validation passed: core 293, macOS 152, Linux 16, Windows 32, protocol/schema 6, full cargo fmt, diff check, and conflict-free merge-tree. This downstream PR remains Draft until #2210 is merged and included in an official cua-driver release. After release, Maka still needs to pin the released version/archive/binary hashes, rebase this branch onto current main, and rerun real AX + restart qualification before converting to Ready.

@hqhq1025hqhq1025 closed this Aug 1, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@hqhq1025
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix(cu): consolidate target identity validation by hqhq1025 · Pull Request #984 · apache/maka · GitHub
Skip to content

fix(cu): consolidate target identity validation - #984

Closed
hqhq1025 wants to merge 4 commits into
apache:mainfrom
hqhq1025:codex/cu-target-identity-consolidated
Closed

fix(cu): consolidate target identity validation#984
hqhq1025 wants to merge 4 commits into
apache:mainfrom
hqhq1025:codex/cu-target-identity-consolidated

Conversation

@hqhq1025

@hqhq1025hqhq1025 commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Summary

Consolidates and supersedes #930, #931, #932, and #933.

  • binds coordinate mutations to the actionable source element identity;
  • validates Electron page/document identity for every pointer mutation before fallback;
  • fails closed for unknown process classification;
  • consumes the opaque element_token protocol from feat(cua-driver): add stable AX node identity tokens trycua/cua#2210;
  • requires fresh tokens for semantic click/set_value;
  • routes actionable coordinate clicks through fresh AX token dispatch, never pixel fallback;
  • keeps native type fail-closed until a focused-node token API exists;
  • preserves idempotent write/readback behavior.

Verification

  • Core full suite
  • Runtime: 1943 tests, 7 skipped, 0 fail
  • Computer Use: 144/144
  • CI will rerun on the updated head

Real-machine validation

Using a local build of trycua/cua#2210 rebased onto cua-driver 0.8.1, OpenAI gpt-5.6-sol completed:

  • AppKit AX set_value
  • AppKit AX click_element
  • multi-step set_value → fresh-token click_element, including recovery from a physical-input intervention
  • process restart recovery: stale target returned target_missing, then the model rediscovered the new PID/window and succeeded

All successful mutations used AX dispatch and recorded zero pixel dispatch.

Upstream dependency

Keep draft until trycua/cua#2210 is reviewed, merged, and released. Its fork workflows currently require maintainer approval to run.

@hqhq1025
hqhq1025force-pushed the codex/cu-target-identity-consolidated branch from b1d3ea8 to e0c1b97CompareJuly 15, 2026 10:04
@hqhq1025

Copy link
Copy Markdown
ContributorAuthor

Adversarial review removed the remaining attribute-based node substitution. Latest head 464d58b1 dispatches the exact opaque token from the consumed observation, rejects caller identity mismatches, never re-snapshots and guesses a replacement node before mutation, and preserves driver same-node changed/readback_value as internal evidence without rewriting a fresh observation. Candidate driver f15f8d87 passed real gpt-5.6-sol AppKit set_value, click, multi-step set_value→click, and restart recovery with zero pixel dispatch. This remains Draft until upstream #2210 is merged and released, then the released artifact/version/hash/provenance must be pinned and the same qualification rerun.

@hqhq1025

Copy link
Copy Markdown
ContributorAuthor

2026-07-20 dependency audit: keep this PR Draft; it is not mergeable yet. Upstream trycua/cua#2210 remains OPEN and DIRTY after maintainer review found two P1 blockers (empty Linux/Windows snapshots can panic; destructive token consumers can discard the exact retained-node binding) and one P2 blocker (cross-platform snapshot_id schema drift). Newer cua-driver prereleases up to v0.9.0 exist, but #2210 has not merged or shipped in a release, and Maka is still pinned to cua-driver-rs-v0.7.1-maka.2. The old green CI only validates the downstream adapter against its candidate protocol; it does not satisfy the release/provenance gate. A dedicated worker is now fixing #2210. Once upstream merges and releases, this branch must be rebased onto current main, the released artifact/version/hash must be pinned, and real AX qualification rerun before converting to Ready.

@hqhq1025

Copy link
Copy Markdown
ContributorAuthor

Upstream blocker update: trycua/cua#2210 has now been rebased to current upstream/main and all three maintainer findings are fixed on head c40481bd. The upstream PR is MERGEABLE (no longer DIRTY); current GitHub state is BLOCKED only by REVIEW_REQUIRED. Validation passed: core 293, macOS 152, Linux 16, Windows 32, protocol/schema 6, full cargo fmt, diff check, and conflict-free merge-tree. This downstream PR remains Draft until #2210 is merged and included in an official cua-driver release. After release, Maka still needs to pin the released version/archive/binary hashes, rebase this branch onto current main, and rerun real AX + restart qualification before converting to Ready.

@hqhq1025hqhq1025 closed this Aug 1, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@hqhq1025
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix(cu): consolidate target identity validation by hqhq1025 · Pull Request #984 · apache/maka · GitHub
Skip to content

fix(cu): consolidate target identity validation - #984

Closed
hqhq1025 wants to merge 4 commits into
apache:mainfrom
hqhq1025:codex/cu-target-identity-consolidated
Closed

fix(cu): consolidate target identity validation#984
hqhq1025 wants to merge 4 commits into
apache:mainfrom
hqhq1025:codex/cu-target-identity-consolidated

Conversation

@hqhq1025

@hqhq1025hqhq1025 commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Summary

Consolidates and supersedes #930, #931, #932, and #933.

  • binds coordinate mutations to the actionable source element identity;
  • validates Electron page/document identity for every pointer mutation before fallback;
  • fails closed for unknown process classification;
  • consumes the opaque element_token protocol from feat(cua-driver): add stable AX node identity tokens trycua/cua#2210;
  • requires fresh tokens for semantic click/set_value;
  • routes actionable coordinate clicks through fresh AX token dispatch, never pixel fallback;
  • keeps native type fail-closed until a focused-node token API exists;
  • preserves idempotent write/readback behavior.

Verification

  • Core full suite
  • Runtime: 1943 tests, 7 skipped, 0 fail
  • Computer Use: 144/144
  • CI will rerun on the updated head

Real-machine validation

Using a local build of trycua/cua#2210 rebased onto cua-driver 0.8.1, OpenAI gpt-5.6-sol completed:

  • AppKit AX set_value
  • AppKit AX click_element
  • multi-step set_value → fresh-token click_element, including recovery from a physical-input intervention
  • process restart recovery: stale target returned target_missing, then the model rediscovered the new PID/window and succeeded

All successful mutations used AX dispatch and recorded zero pixel dispatch.

Upstream dependency

Keep draft until trycua/cua#2210 is reviewed, merged, and released. Its fork workflows currently require maintainer approval to run.

@hqhq1025
hqhq1025force-pushed the codex/cu-target-identity-consolidated branch from b1d3ea8 to e0c1b97CompareJuly 15, 2026 10:04
@hqhq1025

Copy link
Copy Markdown
ContributorAuthor

Adversarial review removed the remaining attribute-based node substitution. Latest head 464d58b1 dispatches the exact opaque token from the consumed observation, rejects caller identity mismatches, never re-snapshots and guesses a replacement node before mutation, and preserves driver same-node changed/readback_value as internal evidence without rewriting a fresh observation. Candidate driver f15f8d87 passed real gpt-5.6-sol AppKit set_value, click, multi-step set_value→click, and restart recovery with zero pixel dispatch. This remains Draft until upstream #2210 is merged and released, then the released artifact/version/hash/provenance must be pinned and the same qualification rerun.

@hqhq1025

Copy link
Copy Markdown
ContributorAuthor

2026-07-20 dependency audit: keep this PR Draft; it is not mergeable yet. Upstream trycua/cua#2210 remains OPEN and DIRTY after maintainer review found two P1 blockers (empty Linux/Windows snapshots can panic; destructive token consumers can discard the exact retained-node binding) and one P2 blocker (cross-platform snapshot_id schema drift). Newer cua-driver prereleases up to v0.9.0 exist, but #2210 has not merged or shipped in a release, and Maka is still pinned to cua-driver-rs-v0.7.1-maka.2. The old green CI only validates the downstream adapter against its candidate protocol; it does not satisfy the release/provenance gate. A dedicated worker is now fixing #2210. Once upstream merges and releases, this branch must be rebased onto current main, the released artifact/version/hash must be pinned, and real AX qualification rerun before converting to Ready.

@hqhq1025

Copy link
Copy Markdown
ContributorAuthor

Upstream blocker update: trycua/cua#2210 has now been rebased to current upstream/main and all three maintainer findings are fixed on head c40481bd. The upstream PR is MERGEABLE (no longer DIRTY); current GitHub state is BLOCKED only by REVIEW_REQUIRED. Validation passed: core 293, macOS 152, Linux 16, Windows 32, protocol/schema 6, full cargo fmt, diff check, and conflict-free merge-tree. This downstream PR remains Draft until #2210 is merged and included in an official cua-driver release. After release, Maka still needs to pin the released version/archive/binary hashes, rebase this branch onto current main, and rerun real AX + restart qualification before converting to Ready.

@hqhq1025hqhq1025 closed this Aug 1, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@hqhq1025
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); fix(cu): consolidate target identity validation by hqhq1025 · Pull Request #984 · apache/maka · GitHub
Skip to content

fix(cu): consolidate target identity validation - #984

Closed
hqhq1025 wants to merge 4 commits into
apache:mainfrom
hqhq1025:codex/cu-target-identity-consolidated
Closed

fix(cu): consolidate target identity validation#984
hqhq1025 wants to merge 4 commits into
apache:mainfrom
hqhq1025:codex/cu-target-identity-consolidated

Conversation

@hqhq1025

@hqhq1025hqhq1025 commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Summary

Consolidates and supersedes #930, #931, #932, and #933.

  • binds coordinate mutations to the actionable source element identity;
  • validates Electron page/document identity for every pointer mutation before fallback;
  • fails closed for unknown process classification;
  • consumes the opaque element_token protocol from feat(cua-driver): add stable AX node identity tokens trycua/cua#2210;
  • requires fresh tokens for semantic click/set_value;
  • routes actionable coordinate clicks through fresh AX token dispatch, never pixel fallback;
  • keeps native type fail-closed until a focused-node token API exists;
  • preserves idempotent write/readback behavior.

Verification

  • Core full suite
  • Runtime: 1943 tests, 7 skipped, 0 fail
  • Computer Use: 144/144
  • CI will rerun on the updated head

Real-machine validation

Using a local build of trycua/cua#2210 rebased onto cua-driver 0.8.1, OpenAI gpt-5.6-sol completed:

  • AppKit AX set_value
  • AppKit AX click_element
  • multi-step set_value → fresh-token click_element, including recovery from a physical-input intervention
  • process restart recovery: stale target returned target_missing, then the model rediscovered the new PID/window and succeeded

All successful mutations used AX dispatch and recorded zero pixel dispatch.

Upstream dependency

Keep draft until trycua/cua#2210 is reviewed, merged, and released. Its fork workflows currently require maintainer approval to run.

@hqhq1025
hqhq1025force-pushed the codex/cu-target-identity-consolidated branch from b1d3ea8 to e0c1b97CompareJuly 15, 2026 10:04
@hqhq1025

Copy link
Copy Markdown
ContributorAuthor

Adversarial review removed the remaining attribute-based node substitution. Latest head 464d58b1 dispatches the exact opaque token from the consumed observation, rejects caller identity mismatches, never re-snapshots and guesses a replacement node before mutation, and preserves driver same-node changed/readback_value as internal evidence without rewriting a fresh observation. Candidate driver f15f8d87 passed real gpt-5.6-sol AppKit set_value, click, multi-step set_value→click, and restart recovery with zero pixel dispatch. This remains Draft until upstream #2210 is merged and released, then the released artifact/version/hash/provenance must be pinned and the same qualification rerun.

@hqhq1025

Copy link
Copy Markdown
ContributorAuthor

2026-07-20 dependency audit: keep this PR Draft; it is not mergeable yet. Upstream trycua/cua#2210 remains OPEN and DIRTY after maintainer review found two P1 blockers (empty Linux/Windows snapshots can panic; destructive token consumers can discard the exact retained-node binding) and one P2 blocker (cross-platform snapshot_id schema drift). Newer cua-driver prereleases up to v0.9.0 exist, but #2210 has not merged or shipped in a release, and Maka is still pinned to cua-driver-rs-v0.7.1-maka.2. The old green CI only validates the downstream adapter against its candidate protocol; it does not satisfy the release/provenance gate. A dedicated worker is now fixing #2210. Once upstream merges and releases, this branch must be rebased onto current main, the released artifact/version/hash must be pinned, and real AX qualification rerun before converting to Ready.

@hqhq1025

Copy link
Copy Markdown
ContributorAuthor

Upstream blocker update: trycua/cua#2210 has now been rebased to current upstream/main and all three maintainer findings are fixed on head c40481bd. The upstream PR is MERGEABLE (no longer DIRTY); current GitHub state is BLOCKED only by REVIEW_REQUIRED. Validation passed: core 293, macOS 152, Linux 16, Windows 32, protocol/schema 6, full cargo fmt, diff check, and conflict-free merge-tree. This downstream PR remains Draft until #2210 is merged and included in an official cua-driver release. After release, Maka still needs to pin the released version/archive/binary hashes, rebase this branch onto current main, and rerun real AX + restart qualification before converting to Ready.

@hqhq1025hqhq1025 closed this Aug 1, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@hqhq1025