Skip to content

feat(shell): add canonical shell and PowerShell backend#962

Merged
huangzesen merged 6 commits into
mainfrom
feat/shell-capability-powershell-backend
Jul 16, 2026
Merged

feat(shell): add canonical shell and PowerShell backend#962
huangzesen merged 6 commits into
mainfrom
feat/shell-capability-powershell-backend

Conversation

@huangzesen

Copy link
Copy Markdown
Collaborator

Summary

  • make shell the single canonical public tool/capability while accepting legacy bash only as a one-way input/config compatibility alias
  • expose the selected native shell dialect in the tool description (posix on macOS/Linux, powershell on Windows)
  • add a native PowerShell 7 adapter for the existing sync/async/timeout/cancel/stdout/stderr/exit-code contract
  • add Windows process ownership with Job Objects and a native cross-process state lock
  • add a separate pull-request Windows workflow with real pwsh integration tests

Scope / non-goals

This is PR1 only. It does not add POSIX-to-PowerShell translation, ExecSpec, ConPTY/TUI/bootstrap/distribution work, or a generic Windows service layer. The retained internal Python package and durable bash.reminder / bash.completion notification namespaces stay compatibility-stable.

Validation

  • 227 passed, 5 skipped — focused capability, async, dialect/process, daemon preset, layer, skill, and PR1 tests (the five real Windows tests skip on macOS)
  • 169 passed — anatomy drift + tool glossary governance in isolation
  • python -m compileall -q ... passed
  • workflow YAML parse passed
  • git diff --check passed
  • exact live base before commit: origin/main = fda6d40c467dea9472ee1bdde36d93278be81058

The native Windows/PowerShell proof is intentionally delegated to the new windows-latest PR job; the local host has neither Windows nor pwsh, so no mock result is presented as native evidence.

Existing baseline-only observations

A broader docs-governance run also had two unrelated failures in unchanged inputs: missing frontmatter in RELEASING.md and a stale Telegram notification-body hash expectation. A mixed test batch exposed pre-existing unclosed-file warnings from daemon test fixtures inside a glossary warning-count assertion; the glossary/anatomy family passed cleanly when run in isolation (169 passed).

Review order

The PR is ready for native Windows CI and independent exact-head review. Merge is intentionally not authorized by this PR.

@huangzesen
huangzesen merged commit d9dd484 into main Jul 16, 2026
1 check failed
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