Skip to content

fix(core): revalidate semantic action against current observation - #102

Draft
seonghobae wants to merge 20 commits into
fix/semantic-node-disabled-actionfrom
fix/semantic-node-current-observation-revalidation
Draft

fix(core): revalidate semantic action against current observation#102
seonghobae wants to merge 20 commits into
fix/semantic-node-disabled-actionfrom
fix/semantic-node-current-observation-revalidation

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Partial implementation of #28, stacked on current #101.

Current stack

Exact live prerequisite #101 is bc810b121bb0303f55afa8777a23cc0f9748c1db; exact #102 head is a123c55d4839dae1db7e6671f7d4d158c7cfd9db. The non-force merge retained only current-observation revalidation and its focused tests relative to the parent; conflicting older network fixtures were discarded in favor of the current parent repairs.

Contract

validate_current_observation requires the supplied fresh observation to describe the exact same node, still advertise the selected action, and remain enabled when the action requires enabled state. Another node fails as ObservationAuthorityMismatch; removed action support and newly disabled interactive state fail closed; disabled ScrollIntoView remains valid. The method does not obtain or authenticate the observation, dispatch browser input, replace typed-input authority, or prove a post-condition.

Exact-current evidence

At exact head a123c55d4839dae1db7e6671f7d4d158c7cfd9db, test-first documentation RED established the missing provenance and non-dispatch boundary. Local verification passed 145 Python contracts; locked Rust format, check, all-target tests, strict Clippy, and rustdoc; exact 100% production function, line, region, and branch coverage. Hosted exact-head checks remain non-passing until terminal success.

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

@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

…n' into codex/restack-pr102

Signed-off-by: Seongho Bae <me@seonghobae.me>
…n' into codex/restack-pr102

Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
…n' into codex/restack-pr102

Signed-off-by: Seongho Bae <me@seonghobae.me>
…n' into codex/restack-pr102

Signed-off-by: Seongho Bae <me@seonghobae.me>
…n' into codex/restack-pr102

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

Copy link
Copy Markdown
Contributor Author

Restacked non-destructively on PR #101 exact head 5ebdbf519bf71bbf1ee115beb49e12538a23434e; new exact head is a4ea8064c3f121b8aff24059d48246a163801d62. During full verification, two inherited loopback tests repeatedly raced the peer teardown: macOS could report NotConnected during local shutdown or InvalidInput while clearing the write timeout after accepting all bytes. The tests now hold the peer alive for the asserted lifetime and accept both fail-closed revoked-stream outcomes without weakening production handling. Each affected test passed 30 consecutive exact runs. Full locked workspace tests, 139 Python contracts, fmt, strict Clippy, rustdoc, and fresh-worktree LLVM function/line/region/branch coverage all pass at 100%.

# Conflicts:
#	crates/originweave-network/tests/webdriver_bidi_websocket_handshake.rs
#	crates/originweave-network/tests/webdriver_bidi_websocket_opening_write.rs
Commit-Message-Assisted-by: Claude (via Claude Code)
Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae

Copy link
Copy Markdown
Contributor Author

Restacked non-destructively on exact current #101 bc810b121bb0303f55afa8777a23cc0f9748c1db; new #102 exact head is a123c55d4839dae1db7e6671f7d4d158c7cfd9db. Two conflicts were stale network-fixture variants, so the verified parent files were retained. A test-first documentation RED now records exact-node, removed-action, and newly-disabled failures while keeping observation acquisition/provenance and browser dispatch out of scope. Local exact-head verification passed 145 Python contracts, all locked Rust gates, and exact 100% production function/line/region/branch coverage. Hosted checks remain pending and are not claimed as passing.

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

Labels

bug Something isn't working priority: high

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant