Skip to content

feat(core): bind semantic node targets to business actions - #93

Draft
seonghobae wants to merge 166 commits into
feat/webdriver-bidi-type-text-postcondition-responsefrom
feat/semantic-node-action-binding
Draft

feat(core): bind semantic node targets to business actions#93
seonghobae wants to merge 166 commits into
feat/webdriver-bidi-type-text-postcondition-responsefrom
feat/semantic-node-action-binding

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Current verified adoption — 2026-09-07

Published head 82056d13aa94c106060b84ee76be56fcb7787fc8 adopts current prerequisite #271 b0410ae92bd20eaf31d09b7d49390e13cb045999 by ordinary merge. Original #93 0664f045 and all parent history remain ancestors. The action-binding implementation and its seven integration tests remain byte-identical; parent network production and workflow gates are unchanged.

Test-first 342fb2c0 reproduced a replacement connection completing the original observation. Merge 9b4e6568 preserves the child authority API and adopts the stronger same-listener rejection/original-recovery test. The child node-validation guard uses the parent's existing registry identity; connection-generation provenance remains a distinct boundary. Review wording P2 was reproduced at 12d032ef and corrected at 82056d13; independent read-only follow-up reports no remaining actionable findings, not a counted approval.

Verification: 10 focused tests, 149 Python contracts, compileall, formatting, workspace/all-target check, full workspace tests, strict Clippy, warning-free workspace rustdoc, CodeGraph and diff checks pass. Exact production coverage is 1,403/1,403 functions; 14,852/14,852 lines; 18,976/18,976 regions; 1,552/1,552 branches. coverage-current-parent.json SHA-256 9479014b94c1575a379d31fea09309deaf00143374b6dd6f04a539aaf452a685. The long-running Rust measurements began at 576c4316; the final two commits change only the Python documentation regression and Markdown, and the complete Rust tree/manifest/lock comparison is byte-identical. The coverage verifier was rerun at the final head; final Python verification passes independently.

Actual sandbox-enabled Edge inspection of the final-head generated core API page found readable headings, signatures and authority caveats without clipping or overlap (/tmp/pr93-rustdoc-82056d13.png). This is documentation presentation, not product-browser acceptance. Fresh hosted checks are required on this published head; predecessor success, skipped statuses and advisory reviews do not transfer.

Keep Draft while #271 and its ancestors remain unmerged. #95 must adopt this exact head while retaining its deterministic-policy delta. No policy approval, browser authentication, end-to-end action success, protected-main merge or release is claimed.

Historical dossier — superseded head/check claims retained

Partial implementation of #28. This existing canonical action-binding lane has been non-destructively reconstructed onto the current WebDriver BiDi typed-text post-condition stack rather than replaced by a competing PR.

Current dependency state

The temporary ancestry reconciliation PR #275 merged only into this unprotected feature branch at b4649c2aa579f0a7e98e5278e85141d12d099dc3. It is not protected-main delivery and transfers no check, review, or approval evidence.

Implemented boundary

SemanticNodeActionBinding pairs the exact OriginWeave-owned semantic node target with an independently classified business ActionRequest while preserving the distinction between DOM/source-node origin and business target origin. It rejects an action request whose source origin does not match the admitted node's current origin and retains opaque node authority instead of accepting a reproducible descriptive tuple.

This binding alone does not authorize policy, execute input, grant network/destination/secret/approval authority, or treat protocol ACK as a successful post-condition. The downstream policy/dispatch stack must independently revalidate current browser and semantic authority immediately before side effects.

Exact-current evidence

For exact head 0664f0452cb329cd692cce7f61f9001652abfda2, local validation passed 141/141 Python contracts, Rust fmt/check/test/all-target Clippy/rustdoc, and exact 100% production function/line/region/branch coverage. Fresh GitHub checks are queued and remain non-passing until terminal success; all predecessor GREEN evidence is historical only.

Keep Draft while #271 and its ancestors remain Draft. No self-approval, force-push, destructive rebase, workflow/ruleset/secret mutation, gate weakening, tagging, release, or predecessor evidence transfer is authorized.

The current head also inherits #242 exact 55fef0c3fae1724eddada53e52c4a0311f509aa3, covering both macOS socket-lifetime fixture races. Exact-head local validation passed 141 Python contracts, full Rust gates, and exact 100% production coverage; fresh hosted checks remain required.

@seonghobae seonghobae added the enhancement New feature or request label Sep 2, 2026 — with ChatGPT Codex Connector
…stcondition-response' into codex/restack-pr93
Signed-off-by: Seongho Bae <me@seonghobae.me>
…stcondition-response' into codex/restack-pr93

Signed-off-by: Seongho Bae <me@seonghobae.me>

# Conflicts:
#	CHANGELOG.md
@seonghobae

Copy link
Copy Markdown
Contributor Author

Restacked non-destructively on PR #271 exact head 64722daac0cbcbaf01375736b5f418838aa88c70; new exact head is 21224af5674e428425dedf58e6c48d0e2d3b753e. Preserved the intended semantic node-action binding diff and simplified admitted-node revalidation Result composition so unit and integration builds retain honest fail-closed coverage without synthetic states or exclusions. Local verification: 139 Python contract tests; full locked workspace tests; fmt; strict Clippy; rustdoc; exact workspace LLVM function/line/region/branch coverage all pass at 100%.

Bring PR #93 onto PR #271 exact head 802ec80 without rewriting either branch.\n\nCommit-Message-Assisted-by: Claude (via Claude Code)

Signed-off-by: Seongho Bae <me@seonghobae.me>
Bring PR #93 onto PR #195 exact head b852245 so the shared macOS loopback lifetime race is repaired without rewriting either branch.

Commit-Message-Assisted-by: Claude (via Claude Code)
Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact head 82b0ebb now inherits #271 at 802ec80 and the shared #195 macOS loopback lifetime repair at b852245, without rewriting branch history. Exact-head local verification passed 141/141 Python contracts, Rust fmt/check/test/all-target Clippy/rustdoc, and exact 100% function/line/region/branch coverage. Fresh GitHub checks are required and currently queued.

seonghobae added a commit that referenced this pull request Sep 5, 2026
Refresh the active-stack baseline and executable inventory contracts with the exact #195 and #93 heads, their local verification, and the remaining authority boundaries.

Commit-Message-Assisted-by: Claude (via Claude Code)
Signed-off-by: Seongho Bae <me@seonghobae.me>
Bring PR #93 onto PR #242 exact head 17754d7 so the shared response-deadline fixture no longer races socket cleanup on macOS.

Commit-Message-Assisted-by: Claude (via Claude Code)
Signed-off-by: Seongho Bae <me@seonghobae.me>
Bring PR #93 onto PR #242 exact head 55fef0c so both macOS socket-lifetime regressions are fixed without rewriting history.

Commit-Message-Assisted-by: Claude (via Claude Code)
Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact head 0664f04 now inherits #242 exact 55fef0c and both deterministic macOS socket-fixture repairs. Exact-head local verification passed 141/141 Python contracts, full Rust gates, and exact 100% function/line/region/branch coverage. Fresh hosted checks remain required.

seonghobae added a commit that referenced this pull request Sep 5, 2026
Bring PR #95 onto PR #93 exact head 82b0ebb without rewriting either branch.

Commit-Message-Assisted-by: Claude (via Claude Code)
Signed-off-by: Seongho Bae <me@seonghobae.me>
seonghobae added a commit that referenced this pull request Sep 5, 2026
Bring PR #95 onto PR #93 exact head 0664f04 without rewriting either branch.

Commit-Message-Assisted-by: Claude (via Claude Code)
Signed-off-by: Seongho Bae <me@seonghobae.me>

seonghobae commented Sep 7, 2026

Copy link
Copy Markdown
Contributor Author

Writer lease RELEASED — root task01a06c0f-b427-7830-b654-9addcdfe7aff. Published/readback #93 82056d1 on #271 b0410ae by ordinary merge. Baseline9tests;342fb2c0 actual foreign-reply RED;9b4e6568 tenfocusedpass;reviewP2 wording RED12d032ef/fix82056d13.149Pythoncontracts,compileall,fullRust/fmt/check/strictClippy/rustdoc,CodeGraph,diff pass. Productioncoverage1403/14852/18976/1552 all100%,artifactSHA2569479014b94c1575a379d31fea09309deaf00143374b6dd6f04a539aaf452a685. Measurements began576c4316; finaldocs-onlycommits preserve completeRusttree/manifests/lock,finalPython andcoverageverifier rerun. Independentreviewresolved/no newfindings,notapproval. ActualEdgefinalcoreAPIvisual readable/no clipping oroverlap,notbrowseracceptance. CI34079739018 Rust101612632437/coverage101612632288 andMV334079739021 job101612632213 queued. Worktree /private/tmp/originweave-pr93-sync.37WHy9 preserves untrackedcoverage; noactivewriter. Nextsafeitem #95 policy-parentadoption.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request priority: medium

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant