feat(core): bind semantic node targets to business actions - #93
Draft
seonghobae wants to merge 3 commits into
Draft
feat(core): bind semantic node targets to business actions#93seonghobae wants to merge 3 commits into
seonghobae wants to merge 3 commits into
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This was referenced Aug 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Partial implementation of #28, stacked on PR #58.
Buyer/security gap
PR #58 binds one node-local action to the exact observed browser authority, but deliberately leaves business intent/risk policy separate. The next runtime boundary still needs to prevent a stale or cross-document semantic node from being paired with an
ActionRequestwhose source origin belongs to a different document. Without an explicit composition value, a future adapter could validate node authority and business policy independently, then accidentally dispatch them as if they referred to the same source document.Dependency
This Draft is stacked on unchanged exact PR #58 head
efe440c7a609cac187faacfa03a4df904a99386fand must remain Draft while #58/#57/#52/#40 are active. No prerequisite check or review is transferred.TDD / RCA sequence
cd784b660a0268cc95725d847bf895edb4b3d5fbintroduced the composition contract but CI run31533977907stopped first at canonical rustfmt. That setup failure is not counted as the intended RED.33fd6ae933e1c5de36058e3adb28ea3d88905f06reached the intended production boundary. CI run31534466686, Rust contracts job93922150601, passed repository contracts and canonical formatting, thencargo check --locked --workspace --all-targetsfailed with E0432 because publicSemanticNodeActionBindingandSemanticNodeActionBindingErrordid not exist. This is the valid RED.c150e2daa0c890c8e2797ebb4c88a6220be13019adds the narrow binding value and public export. Construction now requires the semantic node handle origin to equalActionRequest::source_origin, while leaving the request target origin independent so legitimate cross-origin navigation remains a separately governed destination.SemanticNodeActionTargetandActionRequestseparately and delegates session/context/origin/document-epoch revalidation through the existing target immediately before later dispatch.Exact-head proof
On unchanged exact head
c150e2daa0c890c8e2797ebb4c88a6220be13019against unchanged exact prerequisite #58 headefe440c7a609cac187faacfa03a4df904a99386f:31534945009: success;93923706143: repository contracts, canonical formatting, locked workspace/all-target check, full tests, strict Clippy and rustdoc all success;93923705979: exact owned production function/line/region/branch enforcement success;31534945000: success;No predecessor-head check, review, mergeability result, or synthetic status is transferred to the current head.
Implemented contract
SemanticNodeActionBindingnow:SemanticNodeActionTargetand independently classified businessActionRequest;SourceOriginMismatch;ActionRequest::target_originto equal the source node origin;Truth boundary
This slice does not map
NodeActionKindto business-riskActionKind, authorize policy, grant capability, execute browser input, prove a post-condition, authorize a destination, resolve secrets, authenticate a browser adapter, or claim the Chromium vertical slice complete. A node-localClickremains descriptive execution input; the exact business action/risk/purpose/approval remains explicit in the independently constructedActionRequestand downstream policy boundary.Keep this PR Draft while #58/#57/#52/#40 remain active. Any prerequisite or current-head movement requires fresh exact-head/live-base validation.