Skip to content

fix(agent-isolation): scope touch dismissals to each operation - #1894

Open
leninworld wants to merge 1 commit into
apache:mainfrom
leninworld:fix-touch-overlay-dismissals-issue-1834
Open

leninworld wants to merge 1 commit into
apache:mainfrom
leninworld:fix-touch-overlay-dismissals-issue-1834

Conversation

@leninworld

Copy link
Copy Markdown
Contributor

This PR fixes issue #1834.

Summary

  • Give wrapper and hook watchers the same real signer PID, so dismissing one signature does not immediately open another reminder. Preserve the wrapper as lifetime owner, with a conservative owner-PID fallback if publication fails.
  • Clear an empty SSH-authentication dismissal after observed idle, under the existing window lease. Preserve nonempty signer dismissals and the existing TTL.
  • Add six real-process/socket regression cases, serialize the existing software-key signing test with its shared process lock, and regenerate the required setup fingerprint.

Type of change

  • Python package (tools/*/ with pyproject.toml)
  • Cross-cutting (RFC, AGENTS.md, sandbox, privacy-LLM)
  • Other: shell runtime

Test plan

  • Both reported faults fail assertions on the original script; all six new regression cases pass after the fix.
  • uv run --frozen prek run --all-files --skip workspace-pytest passes, including workspace Ruff, formatting, mypy, links and spec checks.
  • Complete affected/dependent pytest selection: agent-isolation 487 passed / 8 skipped, plugins 114 passed, setup-preflight 408 passed / 7 skipped — 1,009 passed, 15 skipped, zero failures.

Linux ARM64, Python 3.12.12, frozen workspace lock. The skips cover unavailable GUI/Tk, zsh, ambient Node, private-home and trusted-Python scenarios. No physical hardware or macOS GUI validation is claimed. Scoped test-file Ruff reports the same 45 existing diagnostics before and after, with none added.

Summary of retained Docker validation results

RFC-AI-0004 compliance

  • Sandbox — existing runtime-directory, watcher-ownership and window-lease boundaries preserved.

Gen-AI disclosure

Generative AI was used to prepare the code, tests and this description with Codex (desktop version 26.1013.40934), independently reviewed with Claude Desktop 4.29.0 (Opus 5.5). I have personally read and understood the final diff.

Linked issues

Closes #1834.

Share real signer identity across wrapper and hook watchers. Clear only an
empty completed-authentication dismissal while holding the window lease.
Keep conservative fallback and owner cleanup, and cover both regressions.

The existing software-key signing test now takes the shared process lock;
the setup fingerprint is regenerated by its required hook.

Fixes apache#1834

Generated-by: Codex (desktop 26.1013.40934)
Generated-by: Claude Desktop 4.29.0 (Opus 5.5 review)
@github-actions github-actions Bot added family:setup setup-* skills family:tools tools/* capability:platform Framework / agent substrate skills (install, verify, doctor, override, status, setup bootstrap) substrate:sandbox Tool substrate: agent isolation, egress control, settings audit labels Oct 28, 2026
"""Also end an orphaned signer after the abnormal-owner test."""
try:
os.killpg(proc.pid, signal.SIGTERM)
except ProcessLookupError:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

capability:platform Framework / agent substrate skills (install, verify, doctor, override, status, setup bootstrap) family:setup setup-* skills family:tools tools/* substrate:sandbox Tool substrate: agent isolation, egress control, settings audit

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(agent-isolation): touch-overlay dismissals do not identify their signature precisely

2 participants