feat(bash): resolve executor config through the bash settings namespace

The capability's namespace is owned by the seam because it names the
capability, not an implementation: a host composes exactly one provider of
ctx.bash, so both executor families register the same namespace with their
own schema and composition entry without ever colliding, and a settings
document carried between platforms keeps resolving on both.

Both executors read their config through a source thunk, so a stored change
reaches the next command. The constructor checks the schema cannot express
become the section validator, refusing a bad value at the write instead of
at the next command. pwsh re-resolves its executable only when the declared
path changed, so an unrelated settings change never re-probes the filesystem.
This commit is contained in:
Yichen Jiang
2026-08-10 16:10:33 +08:00
parent 558ac47e14
commit ddc1ec2bd2
29 changed files with 396 additions and 51 deletions

View File

@@ -2,5 +2,5 @@
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write docs/subsystems/bash.md
bash.md: d2797c1e3ff73fe8ecb5a053ed4a1d13b13298dd
bash.zh.md: b38a4f332978e94d2945f5fa49b38e8d7df8c9ca
bash.md: 16899d78916c84fbb6f9501b9a278c9749fd144f
bash.zh.md: 7beae15f9ae46038ce15243ad249533115a938d4

View File

@@ -266,7 +266,7 @@ abstract run(spec: BashExecSpec): Promise<BashRunResult>
abstract start(spec: BashExecSpec): BashProcess
```
Source: [`packages/bash/bash/src/index.ts:53`](../../packages/bash/bash/src/index.ts)
Source: [`packages/bash/bash/src/index.ts:65`](../../packages/bash/bash/src/index.ts)
<a id="ctxbashenv--bashenvregistry"></a>

View File

@@ -266,7 +266,7 @@ abstract run(spec: BashExecSpec): Promise<BashRunResult>
abstract start(spec: BashExecSpec): BashProcess
```
Source: [`packages/bash/bash/src/index.ts:53`](../../packages/bash/bash/src/index.ts)
Source: [`packages/bash/bash/src/index.ts:65`](../../packages/bash/bash/src/index.ts)
<a id="ctxbashenv--bashenvregistry"></a>