Skip to content

Introduce cross-platform shell core#560

Open
realmorrisliu wants to merge 2 commits into
mainfrom
feat/introduce-cross-platform-shell-core
Open

Introduce cross-platform shell core#560
realmorrisliu wants to merge 2 commits into
mainfrom
feat/introduce-cross-platform-shell-core

Conversation

@realmorrisliu

Copy link
Copy Markdown
Owner

Summary

  • add pure Rust alan-shell-core and shell-core-ffi crates for portable shell workspace model, reducer, manifest, action, control, terminal profile, and settings summary semantics
  • wire the macOS client through ShellCoreFFIAdapter for migrated manifest/reducer/action/control/profile/settings paths while keeping platform IO and runtime effects in Swift
  • add Swift-exported parity fixtures, Rust fixture tests, adapter smoke tests, architecture guards, and OpenSpec validation fixes needed for the migration gate

Validation

  • cargo fmt --all
  • cargo test -p alan-shell-core -p alan-shell-core-ffi
  • cargo clippy -p alan-shell-core -p alan-shell-core-ffi --all-targets -- -D warnings
  • bash clients/apple/scripts/test-shell-core-ffi-adapter.sh
  • bash clients/apple/scripts/test-shell-runtime-metadata.sh
  • bash clients/apple/scripts/test-terminal-runtime-service.sh
  • bash clients/apple/scripts/test-shell-split-model.sh
  • bash clients/apple/scripts/test-shell-action-registry.sh
  • bash clients/apple/scripts/test-shell-workspace-manifest.sh
  • bash clients/apple/scripts/test-shell-settings-surface.sh
  • bash clients/apple/scripts/test-terminal-account-dev-dry-run-smoke.sh
  • bash clients/apple/scripts/check-shell-contracts.sh
  • bash clients/apple/scripts/check-architecture-maintainability.sh
  • openspec validate introduce-cross-platform-shell-core --type change --strict --json
  • openspec validate --all --strict --json
  • git diff --check

Note: test-shell-settings-surface.sh first hit a transient Clang module-cache rename error while several Swift scripts ran in parallel; a separate rerun passed.

@realmorrisliu realmorrisliu marked this pull request as ready for review June 17, 2026 15:44

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d43a17fa07

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

.paneEqualizeSplits,
.paneZoom,
.paneUnzoom,
.terminalSendText,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Route terminal.send_text through the host handler

When a control-file command uses terminal.send_text, ShellControlPlane.responseForPolledCommand tries socketServer.handleLocally before the host commandHandler; adding .terminalSendText here makes AlanShellLocalCommandExecutor consume the command and return a sendText side effect. However ShellControlPlane constructs the socket server with sideEffectHandler: { _ in }, so the side effect is dropped and the host path in ShellHostControlCommandHandling that actually writes to TerminalRuntimeRegistry is skipped. In that polled-command context, the response can report success while no bytes are delivered.

Useful? React with 👍 / 👎.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

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