Repository navigation
Restore pending request review after time away - #181
Merged
Merged
Conversation
This was referenced Oct 11, 2026
Merged
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.
Closes #180
Summary
Diff stat
Compared with
origin/main(7911b85cec8a43796c35d49752275471bf6776fa): 20 files changed, 676 insertions, 47 deletions. Production changes cover approval presentation/placement, wake cleanup, expiration scheduling, terminal-result copy and menu feedback; tests add injected screen/panel/clock coverage and update the organization expiry expectation.Tests
swift test --scratch-path .build/issue-180 --filter 'AgentApprovalPresentationCoordinatorTests|ApprovalAwayExpirationTests|AgentApprovalExpiryRecordTests'passed 6 / 0 failed / 0 skipped before behavior changes, after extracting the presentation seam without changing behavior. These observational tests reproduced the current faults, then became regression assertions.swift build --scratch-path .build/issue-180: PASS.swift test --scratch-path .build/issue-180 --filter 'AgentApprovalPresentationCoordinatorTests|AgentApprovalPanelPlacementTests|AgentApprovalPrivacyTests|AgentApprovalScreenSessionTests|AgentApprovalPanelTests|ScreenPresentationTests|ManagementAuthenticationTests|ApprovalStateMachine.*Tests|ApprovalAwayExpirationTests|AgentTextWriteApprovalLifecycleTests|AgentApprovalExpiryRecordTests|AgentOrganizationConcurrencyTests|CredentialAccessRecordTests|AppLanguageCatalogTests': 96 passed / 0 failed / 0 skipped (Vault 25, Broker 20, App 51).7911b85; this PR adds 24 tests. The full suite is reserved for PR CI.94ecdcdd243635b73f3f23186c98374a62c0cd2e: run 38101185262 is SUCCESS; build-and-test and basic-ui-flows are both SUCCESS.swift test: 1,130 executed = 1,127 passed / 0 failed / 3 skipped, versus main 1,106 executed = 1,103 passed / 0 failed / 3 skipped at7911b85(+24 tests, unchanged skips).bash scripts/run-e2e.sh: 15 passed / 0 failed / 0 skipped, with the required basic E2E gate passed; optional screenshots and evidence upload also succeeded. This does not verify real Touch ID, two-display placement, or external client environments.python3 -m unittest discover -s Tests/Automation -v: 183 passed / 0 failed / 0 skipped.Checks
python3 scripts/check_hygiene.py: PASS; all seven violation counts zero, including source size and test-support rules.python3 scripts/check_module_deps.py: PASS.git diff --check: PASS.ASKKEY_*overrides.lsoffound no open files; consumed local/CI logs were deleted. Current disk availability is 365 GiB.Confirmed root causes and limits:
presentingApproval, and initialpanel.center()used the main display; injected panel state proves manual review did not focus/move it. Physical occlusion and the exact display of the reported incident remain device-only evidence.finish(nil)did not advance. The old expiry/request-ended timer already advanced explicitly, so this diagnosis is narrower than the issue's initial hypothesis. The coordinator now owns all dismissal transitions and avoids reopening a deferred request in a loop..denied; organization and runtime terminal cleanup shared that mapping. New expiry records use.expired, while explicit denial/cancellation retain their previous result. Historical denied records are unchanged because the old format cannot distinguish these causes.Deviations and questions
The Orca diagnosis gate was answered and approved in task
task_7993e3ade9bf, dispatchctx_2a4dc9099adf; the coordinator additionally required pointer-display placement for initial automatic presentation and one-line feedback. No issue comments or status-label changes were made.Device repro: NOT_RUN under the task's no-local-desktop restriction. After approving a candidate, the maintainer can: