Skip to content

Fence V2 interruption settlement generations - #809

Merged
dmoliveira merged 1 commit into
mainfrom
fix/v2-quarantine-settlement
Nov 15, 2026
Merged

dmoliveira merged 1 commit into
mainfrom
fix/v2-quarantine-settlement

Conversation

@dmoliveira

Copy link
Copy Markdown
Owner

Summary

  • Prevent an earlier pending session.wait from releasing quarantine after a newer accepted interruption; after a stale wait succeeds, start a fresh wait for the latest generation.
  • Keep failures sticky, preserve interruption bounds and session isolation, and cover reordered acknowledgements, repeated overlaps, rejected waits, refused interruptions and peer sessions.
  • Keep the adapter unconfigured. A successful void session.wait does not prove which interruption the host settled; this is an ordering fence, not gateway qualification.

Validation

  • Node 22 build, ESLint, 26 focused V2 redaction/provider tests, git diff --check, and static pre-commit hooks passed. Full make validate was deferred to isolated CI because local execution shares the fixed configuration-lock registry.
  • In a tmux-backed isolated OpenCode 2.2.5 server with an authenticated localhost provider, registered the adapter against live V2 hooks but injected synthetic interrupt and wait scheduling. The baseline reopened after the stale wait; the revised adapter blocked all six tested guards until the fresh wait completed, while the peer remained unaffected. These are controlled plugin bookkeeping observations, not proof of native concurrent interruption behavior.
  • Independently checked macOS restrictions denied outside and symlink-target writes, non-loopback connections and external signals while allowing fixture writes and localhost. Checked process/socket teardown completed; fixture and version directories were retained. These checks are not proof against all same-user interference or escaped processes.

@dmoliveira
dmoliveira merged commit d7f19a6 into main Nov 15, 2026
6 checks passed
Sign up for free to 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