Skip to content

refactor: inject Cloud terminal navigation capabilities - #92

Closed
teamleaderleo wants to merge 6 commits into
prototype/cloud-navigation-basefrom
refactor/cloud-navigation-capabilities
Closed

teamleaderleo wants to merge 6 commits into
prototype/cloud-navigation-basefrom
refactor/cloud-navigation-capabilities

Conversation

@teamleaderleo

Copy link
Copy Markdown
Owner

Summary

Cloud terminal navigation currently names the concrete catalog and global app/window helpers, so testing its restore policy requires the app's runtime owners. This prototype gives the Cloud consumer narrow catalog, presentation and keyed-scheduling capabilities. The existing SurfaceCatalog and AppDelegate adapters perform the same operations; navigation retains validation, restore/bind ordering and exact daemon-tab selection.

This is one bounded cut from RFC #13108, coordinated through Tact #80. Tact #81 retains identity mapping/fixtures ownership.

Scope and dependency removal

  • CloudTreeTerminalNavigationCoordinator no longer depends on concrete SurfaceCatalog, AppDelegate, SurfacePaneFactory, CloudTreeNodeBuilder, CloudWorkspaceLayoutTranslator, or CloudTreeNodeActions.
  • Cloud owns the catalog/scheduling protocols and presentation closure value. The catalog remains authoritative; AppDelegate still selects the live window owner at effect time. No new store or runtime singleton.
  • The AppKit outline extension is separated from the policy file, with its logging and dispatch unchanged.
  • Title normalization has one implementation on the group value; existing title callers delegate to it.
  • IDs, Codable/equality implementations, layout values, optimistic host choice, project/reuse flags and close flags are unchanged. CLI target membership is unchanged.

Validation (in progress)

Characterization commit 3f12f35158 precedes the inversion and covers invalid owners, duplicate activation and real-catalog projection reuse. Fake-capability tests add exact clicked-tab restore, ambiguity/missing-target failure, deletion checks, cancellation cleanup, unavailable scheduling and original error propagation. Existing entrypoint/integration tests remain wired.

Project normalization, test wiring, and diff whitespace checks pass. Native app/CLI and cmux-unit execution are pending the serialized local build lane; no runtime pass is claimed yet. Exact results and timing receipts will be added before handoff.

Pending decision and next cut

manaflow-ai#13119 was closed in favor of #13135, which remains open and is absent from this base. Its package extraction and historical measurements are not repeated here. This prototype keeps navigation in the app target; the value package, SurfaceResourceGroup/layout declaration closure, and operation scheduling/recording are prerequisites to a later packaged Cloud navigation slice. There is no claimed package-build speedup or public API/schema change.

Maintainer decision: accept this consumer-owned navigation boundary for the RFC's second cut, then decide the landing order with manaflow-ai#13135. This draft is in the user's fork pending that decision and native evidence. No merge is requested.

The comparison base prototype/cloud-navigation-base pins upstream main b334a7deeb0ff65bc9ee4d1c6a2bf7d454795110; the fork's main is much older, so using it would add thousands of unrelated files to this review.

@teamleaderleo

Copy link
Copy Markdown
Owner Author

Superseded by the active upstream PR manaflow-ai#13264 on manaflow-ai/cmux:refactor/cloud-navigation-capabilities. The exact six commits and head 9401fe5 are preserved. Candidate native verification remains in progress and all further fixes, review, and evidence belong on the upstream PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant