Fix last unowned app-host unit test failures - #13678
teamleaderleo merged 2 commits into
Conversation
TabManager.restoreSessionSnapshot restores each workspace's surface projections before it assigns tabs, so SurfaceCatalog.restore's ownership check could not find the destination and silently dropped every restored remote projection. Check ownership against the workspace being restored. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- CLI ssh attach: count identity UUIDs exactly; manaflow-ai#11497 added an auth token uuidgen - device mirror directories: give the fake device trusted presence (e3d424c gate) - font zoom mirrors: deltas from the 8pt inherited base (e6926fb arithmetic) - Computer Use refresh: fake daemon reply was invalid JSON in a raw string (manaflow-ai#13599) - quit alert: compare button alignment rects, not padded frames - remote split cwd rescue: cwd travels as CMUX_REMOTE_INITIAL_CWD since manaflow-ai#12054 - default freestyle split: Cloud-owned splits route to Cloud since fa5dc4c Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository: manaflow-ai/cmux/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
5a92d7f
into
manaflow-ai:fix/app-host-green
Fixes the remaining unowned app-host failures from #13643 run 35735052149. Focus, geometry, and sidebar failures are owned elsewhere.
Product fix
TabManagerSessionSnapshotTests.testSessionSnapshotPersistsRemoteSurfaceProjectionsAndRestoreRelinksThem: product regression.TabManager.restoreSessionSnapshotrestores projections before it assignstabs, so the ownership check inSurfaceCatalog.restore(eb3edd7/42f1ab4a07) never finds the workspace. It then silently drops every restored Cloud projection. That is why registering the TabManager (test: repair session-restore, CLI, shell, and Cloud placement app-host tests #13657) didn't help. Fix:restorechecks ownership against the workspace being restored (restoringWorkspace:), using the sameownershipRejectionpolicy.Stale tests or test bugs
CLINotify…testSSHSessionAttachCreatesSurfaceWithPersistedPTYSessionID: stale. fix: make SSH auth cleanup fork resilient #11497 added an auth-event-tokenuuidgen, which took the raw count from 2 to 4. The test now makes exact assertions for the attempt, lifecycle, and auth-token UUIDs..sameAccountonline presence.grantedPermissionsResumeIncompleteSetupFromSettingsRefresh: test bug from Fix Computer Use granted-permission setup recovery #13599. In the raw string#"{\"ok\"…}"#the fake daemon's reply is invalid JSON, so every refresh timed out as unknown. Removed the escapes.presenterUsesStandaloneCompletionWithoutRunningNestedModalLoop: host-dependent geometry. Where NSAlert stacks its buttons, each button's frame carries about 6pt of bezel padding. The test now comparesalignmentRect(forFrame:), and the no-overlap assertion is kept.splitFromLocalResumedAgentPaneInsideRemoteWorkspaceUsesSessionCwdRescue: stale. Since Fix SSH split panes inheriting the remote CWD #12054, SSH-startup splits carry cwd inCMUX_REMOTE_INITIAL_CWD, andrequestedWorkingDirectoryis nil. The test asserts that the rescued directory arrives there.TabManagerChildExitCloseTests.testDefaultFreestyleCloudSplit…: stale. Since fa5dc4c, managed-Cloud SSH panes are Cloud-owned, and their splits route to the provider or fail closed. The test keeps the startup-command repair assertions, which now run oneffectiveRemoteTerminalStartupCommand, and asserts the Cloud routing.Not changed
WorkspaceTerminalFocusRecoveryTestshidden-tiny deferral (2 tests): test: pin key-window focus, rebind retired terminals, diagnose tmux divider parity #13672'sKeyStatusTestWindowalready reaches these tests throughmakeWindow(). The failing stats also showwindowIsKey: true, appIsActive: true, so this isn't key status. The cause is unproven; the suspect is the workspace visibility sync re-showing the panel before the test's reveal. That needs a local run with focus logs.Checks:
swiftc -parseon the edited files,test_ci_pbxproj_test_wiring.sh,check-test-determinism.py. The fixes have not been run yet; this PR's CI is the first run.🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Fixes the last unowned app-host test failures, including one product regression where session restore silently dropped all Cloud projections.
The product fix makes
SurfaceCatalog.restorecheck ownership against the workspace being restored. Previously,TabManager.restoreSessionSnapshotrestored projections before assigningtabs, so the ownership check never found the destination workspace and every restored remote projection was dropped.Test fixes
alignmentRect(forFrame:)instead of padded bezel frames.CMUX_REMOTE_INITIAL_CWD.Two
WorkspaceTerminalFocusRecoveryTestsfailures remain; the cause is unproven and suspected to be the workspace visibility sync, not key status.Written for commit 8ca302a. Summary will update on new commits.