Repository navigation
fix: restore the app on its last workspace without taking focus - #48
Merged
Merged
Conversation
Remember workspace changes and prepare quiet placement before recreating an open window after shell reloads. Closed windows remain closed; explicit launches remain available. Window matching is scoped to the shell process, and no conversation data is persisted.
nixfred
added a commit
that referenced
this pull request
Sep 10, 2026
…ad as a failure PR #43 merged fine but its workflow run is recorded as failed, because the approval expired before any job started. Zero jobs, no logs, and an annotation that looks exactly like a test regression to whoever opened the PR. Verified rather than assumed. The repo's policy is `{"approval_policy":"first_time_contributors"}`, the cited run (34064507217, event=pull_request, head duplicate-cards-and-instant-send) is conclusion=failure, and this is not historical: PR #49 has two runs sitting at conclusion=action_required right now, which is why it shows "no checks reported" while #45 through #48 all show a passing test job. CONTRIBUTING now tells contributors what an expired approval looks like and that it is not their code, and tells maintainers to approve before merging so a merged PR carries a real green tick. Deliberately NOT done, both need the owner's decision: - Changing the approval policy. Relaxing it means untrusted fork code runs in CI on push, which is a security trade-off, not a docs fix. - Approving the two runs waiting on #49. Same reason: it executes that fork's workflow. No runtime change, which matches the reporter's own framing. LR-T: issue-44, ci, fork-pr-approval, github-actions LR-D: blip, ci, docs LR-K: an-expired-approval-is-not-a-test-failure Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MjLJVjERSup2CMwVehKja7
3 of 4 tasks
nixfred
added a commit
that referenced
this pull request
Sep 13, 2026
… entry Release audit before 2.5.0, same method as 2.4.0: every merge since v2.4.0 checked against Unreleased. Missing and now written: #73 (security code on wl-copy stdin), #50 (failed send keeps its bubble), #51 (accessible composer, spelling, arrow keys), #52 (resizable panel + compact header), #53 (Ctrl+1-9 pins, back arrow), #55 + 2197e0d (unnamed groups named after people, composite avatar), #59/#60/#61 (contact scans, read-only card view, vCard copy/save), #48 (window restores on its workspace), #36 (no uninvited consent prompt from blip-check). Attributions checked against gh PR authors: #48 is @jefehoser; #36 reported by @jacobaross. Skipped as not user-facing: #64 (test isolation), #65 (README line), CONTRIBUTORS docs. No version bump yet: blip-b2 is landing the avatar-cache fix and #62 for Fred, and 2.5.0 waits for those. LR-T: changelog, release-audit, 2.5.0, attribution, backfill LR-D: blip, docs, release LR-K: audit-the-release-not-assume-it Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016PeUtMhaSaA9aiazebBUMS
nixfred
pushed a commit
that referenced
this pull request
Sep 15, 2026
#48 restored the window on shell reload. Idle and display-off remap it as a new client on the focused workspace, and that remap was then saved as home. Keep a live-title compositor rule for the last user move; send a remap back quietly without taking focus. Closed windows stay closed. Touched: window recreate/restore invariant in CLAUDE.md.
Owner
|
@jefehoser, thank you, and I am sorry this is late. Your two merged pull requests, #40 and #48, never got a comment from me on the PR itself. That is my miss. #40 made Favorites and the thread list follow Messages for two shapes that used to split. A re-keyed group keeps its pin, and a merged 1:1, a phone SMS row and an email iMessage row under one group, is one thread instead of two with the pin stuck on the stale handle. #48 restores the app window on its last workspace without taking focus, and you checked it with a live shell restart and plugin rescan from another workspace, not only with tests. Both fixed things that were wrong quietly, all day long. Thank you, and thank you for the note on #40. It is good to hear. |
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.
Blip's app window is recreated when the shell or plugin bar reloads. Previously it restored visibility and size but appeared on the active workspace, taking focus. This change remembers workspace moves and prepares quiet placement before mapping the replacement window. Closed windows remain closed, and explicit launches remain available.
The restoration rule exists only at runtime and matches a unique temporary window title. No fixed-workspace user configuration is needed. Window identity is scoped to the shell PID; only window metadata is persisted.
Validation: 394 tests pass. An isolated window restored on workspace 4, followed a manual move to workspace 5 on restart without changing the active workspace, and remained closed after closing and restarting. Live shell restart and plugin rescan from workspace 3 restored Blip on workspace 2 without focus or workspace changes.