mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-11-15 10:59:32 +01:00
fix: disclose the tcsh regression and bring the launch docs in line (release review)
A tcsh login shell worked on 1.48.0 only because the local sh rewrote
${SHELL:-/bin/sh} to this host's shell. With the launch verbatim, tcsh gets -i -l,
refuses it and every stock launch leaves a dead pane. The changeset and
docs/remote-sessions.md described that as a standing limitation; they now name it
as a change in this release, with what the override workaround costs.
Also: extraSshOptions joins the list of values now literal at launch, the stock pane
command is shown as /bin/sh -c in the docs and the builder's JSDoc, the invariants
state how the launch must reach the far end, the manual pages cover $ in an override,
and the invariants no longer say extraSshOptions refuses a bare $ (it never did).
Reworded the em-dashes on the invariants line this rewrites.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
bf6457e488
commit
a8688f14a0
8 files changed
+41
-21
No files matched your search
@@ -129,22 +129,19 @@ describe('remote-hosts domain', () => {
|
||||
|
||||
describe('per-mode command overrides', () => {
|
||||
const modes = ['shell', ...listClis().map((cli) => cli.id)];
|
||||
const host = { id: 'h', label: 'H', host: '10.0.0.1', username: 'u' };
|
||||
|
||||
// `.strict()` refuses an unknown key, so a mode missing here cannot take an override, and
|
||||
// `commands.*` is the documented way out for a login shell the stock launch cannot run.
|
||||
it.each(modes)('accepts a %s override on a remote host and a docker host', (mode) => {
|
||||
const commands = { [mode]: 'exec my-agent' };
|
||||
const remote = { id: 'h', label: 'H', host: '10.0.0.1', username: 'u', commands };
|
||||
const docker = { id: 'h', label: 'H', image: 'codeman/agent:base', commands };
|
||||
expect(RemoteHostSchema.safeParse(remote).success).toBe(true);
|
||||
expect(RemoteHostSchema.safeParse({ ...host, commands }).success).toBe(true);
|
||||
expect(DockerHostSchema.safeParse(docker).success).toBe(true);
|
||||
});
|
||||
|
||||
it('still refuses a key that is no mode', () => {
|
||||
const commands = { nope: 'exec my-agent' };
|
||||
expect(RemoteHostSchema.safeParse({ id: 'h', label: 'H', host: '10.0.0.1', username: 'u', commands }).success).toBe(
|
||||
false
|
||||
);
|
||||
expect(RemoteHostSchema.safeParse({ ...host, commands: { nope: 'exec my-agent' } }).success).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in new issue
Block a user