Repository navigation
[4/4] Save pending chat preferences within a bounded shutdown budget - #455
Draft
Sheng Chen (jdneo) wants to merge 1 commit into
Draft
Sheng Chen (jdneo) wants to merge 1 commit into
Sheng Chen (jdneo) wants to merge 1 commit into
Conversation
Quiesce preference recovery at the post-veto workbench shutdown event and drain accepted account-bound snapshots through the shared writer while dispatching SWT events for at most two seconds. Cover early completion, deadlines, reentrancy, failures, and late account-bound writes. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sheng Chen (jdneo)
added this pull request to stack #456
September 20, 2026 10:31
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.
Stack and scope
Final layer of the nonblocking chat preferences stack for #408. Depends on #454 and targets
jdneo-preferences-03-lifecycle-recovery(176cd589cd7a7bb10fba6aa368e2ab42804c40b0). Preceding layers: #452, #453, #454. This PR changes preference shutdown only; it does not rewrite conversation persistence or general workbench shutdown.Behavior
ChatServiceManagerregistersPreferenceShutdownforUIEvents.UILifeCycle.APP_SHUTDOWN_STARTED. Eclipse 4.31 synchronously publishes this event after all veto opportunities and before service disposal. We never veto or reissue a close request, so another participant's canceled exit is respected.PreferenceStorage.beginShutdown()returns a read-only completion for pending accepted saves, including old-account writes when the current account is clean/unresolved. It uses already captured destinations and never resolves another CLS persistence path. Newer same-destination successes supersede earlier failures; failures for other destinations remain represented.The inherited protection decision is unchanged: Windows ACLs are preserved; on POSIX without a supported ACL view, preserve owner/group and owner bits while intentionally removing group/other permissions. No full extended-POSIX-ACL preservation claim.
Validation
TDD at the agreed public storage lifecycle and actual shutdown-adapter registration/SWT boundaries. Controlled time verifies the exact logical 2,000 ms cap without sleeps; real SWT dispatch and temporary-directory file writes cover early completion, clean/unresolved paths, failures, older in-flight revisions/accounts, reentrancy, disposal, and late completion. JUnit-thread fixture cleanup now waits for accepted writes before deleting its temporary directory.
All final commands passed with Java 21.0.11:
clean verify: 10,831 tests, 0 failures, 0 errors, 8 POSIX skips on Windows (core 10,212; UI 615; Jobs 4). SWTBot probes remain skipped by default; no Linux/probe run is claimed. Missing generated pinned CLS assets were restored with the existing npm install workflow, without dependency/configuration changes.Review
Parallel Standards/Spec review against the exact layer-03 base: Standards had no findings. Spec's old-account pending-save accounting and superseded same-path failure findings were reproduced with red regressions, fixed, and confirmed resolved. No outstanding review findings.