refactor(fleet): rename tmux socket mosaic-factory → mosaic-fleet (#630)
Co-authored-by: Jason Woltje <jason@diversecanvas.com> Co-committed-by: Jason Woltje <jason@diversecanvas.com>
This commit was merged in pull request #630.
This commit is contained in:
@@ -132,14 +132,14 @@ describe('fleet roster parsing', () => {
|
||||
|
||||
const roster = await loadFleetRoster(rosterPath);
|
||||
|
||||
expect(roster.tmux.socketName).toBe(''); // absent ⇒ default socket (no -L), not mosaic-factory
|
||||
expect(roster.tmux.socketName).toBe(''); // absent ⇒ default socket (no -L), not mosaic-fleet
|
||||
expect(roster.tmux.holderSession).toBe('_holder');
|
||||
expect(roster.agents).toHaveLength(1);
|
||||
expect(getRosterAgent(roster, 'canary-pi').runtime).toBe('pi');
|
||||
});
|
||||
|
||||
it('socketArgs: named socket → -L <name>; empty → no -L (default socket)', () => {
|
||||
expect(socketArgs('mosaic-factory')).toEqual(['-L', 'mosaic-factory']);
|
||||
expect(socketArgs('mosaic-fleet')).toEqual(['-L', 'mosaic-fleet']);
|
||||
expect(socketArgs('')).toEqual([]);
|
||||
});
|
||||
|
||||
@@ -152,14 +152,14 @@ describe('fleet roster parsing', () => {
|
||||
'version: 1',
|
||||
'transport: tmux',
|
||||
'tmux:',
|
||||
' socket_name: mosaic-factory',
|
||||
' socket_name: mosaic-fleet',
|
||||
'agents:',
|
||||
' - name: canary-pi',
|
||||
' runtime: pi',
|
||||
].join('\n'),
|
||||
);
|
||||
const roster = await loadFleetRoster(rosterPath);
|
||||
expect(roster.tmux.socketName).toBe('mosaic-factory');
|
||||
expect(roster.tmux.socketName).toBe('mosaic-fleet');
|
||||
expect(buildTmuxListSessionsCommand(roster.tmux.socketName)).toContain('-L');
|
||||
});
|
||||
|
||||
@@ -189,7 +189,7 @@ describe('fleet roster parsing', () => {
|
||||
JSON.stringify({
|
||||
version: 1,
|
||||
transport: 'tmux',
|
||||
tmux: { socket_name: 'mosaic-factory' },
|
||||
tmux: { socket_name: 'mosaic-fleet' },
|
||||
defaults: { working_directory: '/srv/mosaic' },
|
||||
agents: [{ name: 'coder0', runtime: 'codex', class: 'implementer' }],
|
||||
}),
|
||||
@@ -202,7 +202,7 @@ describe('fleet roster parsing', () => {
|
||||
'MOSAIC_AGENT_RUNTIME=codex',
|
||||
'MOSAIC_AGENT_MODEL=',
|
||||
'MOSAIC_AGENT_WORKDIR=/srv/mosaic',
|
||||
'MOSAIC_TMUX_SOCKET=mosaic-factory',
|
||||
'MOSAIC_TMUX_SOCKET=mosaic-fleet',
|
||||
'',
|
||||
].join('\n'),
|
||||
);
|
||||
@@ -213,7 +213,7 @@ describe('fleet roster parsing', () => {
|
||||
'MOSAIC_AGENT_NAME=coder0',
|
||||
'MOSAIC_AGENT_RUNTIME=codex',
|
||||
'MOSAIC_AGENT_WORKDIR=/srv/new',
|
||||
'MOSAIC_TMUX_SOCKET=mosaic-factory',
|
||||
'MOSAIC_TMUX_SOCKET=mosaic-fleet',
|
||||
'',
|
||||
].join('\n');
|
||||
const existing = [
|
||||
@@ -231,7 +231,7 @@ describe('fleet roster parsing', () => {
|
||||
'MOSAIC_AGENT_NAME=coder0',
|
||||
'MOSAIC_AGENT_RUNTIME=codex',
|
||||
'MOSAIC_AGENT_WORKDIR=/srv/new',
|
||||
'MOSAIC_TMUX_SOCKET=mosaic-factory',
|
||||
'MOSAIC_TMUX_SOCKET=mosaic-fleet',
|
||||
'MOSAIC_AGENT_COMMAND=/home/jarvis/.config/mosaic/fleet/canary.sh',
|
||||
'# site note',
|
||||
'',
|
||||
@@ -324,7 +324,7 @@ describe('fleet roster parsing', () => {
|
||||
const localCanary = await loadFleetRoster(join(examplesDir, 'local-canary.yaml'));
|
||||
|
||||
expect(minimal.agents.map((agent) => agent.name)).toEqual(['canary-pi']);
|
||||
expect(localCanary.tmux.socketName).toBe('mosaic-factory');
|
||||
expect(localCanary.tmux.socketName).toBe('mosaic-fleet');
|
||||
expect(localCanary.agents.map((agent) => agent.name)).toEqual(['lead', 'coder0', 'reviewer0']);
|
||||
expect(localCanaryText).not.toMatch(/usc|ultron|secrev/i);
|
||||
});
|
||||
@@ -349,11 +349,11 @@ describe('fleet command construction', () => {
|
||||
it('builds socket-scoped agent send commands', () => {
|
||||
const paths = resolveFleetPaths('/home/test/.config/mosaic');
|
||||
expect(
|
||||
buildAgentSendCommand(paths, 'coder0', 'hello', 'mosaic-factory', 'operator:mosaic-cli'),
|
||||
buildAgentSendCommand(paths, 'coder0', 'hello', 'mosaic-fleet', 'operator:mosaic-cli'),
|
||||
).toEqual([
|
||||
'/home/test/.config/mosaic/tools/tmux/agent-send.sh',
|
||||
'-L',
|
||||
'mosaic-factory',
|
||||
'mosaic-fleet',
|
||||
'-S',
|
||||
'operator:mosaic-cli',
|
||||
'-s',
|
||||
@@ -841,10 +841,10 @@ describe('fleet ps — command construction', () => {
|
||||
});
|
||||
|
||||
it('builds exact tmux list-panes command with the correct format string', () => {
|
||||
expect(buildTmuxListPanesCommand('canary-pi', 'mosaic-factory')).toEqual([
|
||||
expect(buildTmuxListPanesCommand('canary-pi', 'mosaic-fleet')).toEqual([
|
||||
'tmux',
|
||||
'-L',
|
||||
'mosaic-factory',
|
||||
'mosaic-fleet',
|
||||
'list-panes',
|
||||
'-t',
|
||||
'=canary-pi:0.0',
|
||||
@@ -1167,7 +1167,7 @@ describe('fleet install — auto-enable units for boot-survival', () => {
|
||||
const minimalRoster: FleetRoster = {
|
||||
version: 1,
|
||||
transport: 'tmux',
|
||||
tmux: { socketName: 'mosaic-factory', holderSession: '_holder' },
|
||||
tmux: { socketName: 'mosaic-fleet', holderSession: '_holder' },
|
||||
defaults: { workingDirectory: '~/src' },
|
||||
runtimes: { codex: { resetCommand: '/clear' } },
|
||||
agents: [{ name: 'coder0', runtime: 'codex', className: 'worker' }],
|
||||
@@ -1189,7 +1189,7 @@ describe('fleet install — auto-enable units for boot-survival', () => {
|
||||
const minimalRoster: FleetRoster = {
|
||||
version: 1,
|
||||
transport: 'tmux',
|
||||
tmux: { socketName: 'mosaic-factory', holderSession: '_holder' },
|
||||
tmux: { socketName: 'mosaic-fleet', holderSession: '_holder' },
|
||||
defaults: { workingDirectory: '~/src' },
|
||||
runtimes: { codex: { resetCommand: '/clear' } },
|
||||
agents: [{ name: 'coder0', runtime: 'codex', className: 'worker' }],
|
||||
@@ -1216,7 +1216,7 @@ describe('fleet install — auto-enable units for boot-survival', () => {
|
||||
const minimalRoster: FleetRoster = {
|
||||
version: 1,
|
||||
transport: 'tmux',
|
||||
tmux: { socketName: 'mosaic-factory', holderSession: '_holder' },
|
||||
tmux: { socketName: 'mosaic-fleet', holderSession: '_holder' },
|
||||
defaults: { workingDirectory: '~/src' },
|
||||
runtimes: { codex: { resetCommand: '/clear' } },
|
||||
agents: [{ name: 'coder0', runtime: 'codex', className: 'worker' }],
|
||||
@@ -1388,10 +1388,10 @@ describe('fleet ps — command sequences issued', () => {
|
||||
|
||||
describe('buildTmuxListSessionsCommand', () => {
|
||||
it('builds exact list-sessions command with session_name format', () => {
|
||||
expect(buildTmuxListSessionsCommand('mosaic-factory')).toEqual([
|
||||
expect(buildTmuxListSessionsCommand('mosaic-fleet')).toEqual([
|
||||
'tmux',
|
||||
'-L',
|
||||
'mosaic-factory',
|
||||
'mosaic-fleet',
|
||||
'list-sessions',
|
||||
'-F',
|
||||
'#{session_name}',
|
||||
@@ -1642,11 +1642,11 @@ describe('fleet ps — unmanaged socket sessions', () => {
|
||||
describe('agent watch', () => {
|
||||
it('builds exact grouped-viewer creation command', () => {
|
||||
expect(
|
||||
buildAgentWatchCreateViewerCommand('canary-pi', 'canary-pi-watch-123', 'mosaic-factory'),
|
||||
buildAgentWatchCreateViewerCommand('canary-pi', 'canary-pi-watch-123', 'mosaic-fleet'),
|
||||
).toEqual([
|
||||
'tmux',
|
||||
'-L',
|
||||
'mosaic-factory',
|
||||
'mosaic-fleet',
|
||||
'new-session',
|
||||
'-d',
|
||||
'-t',
|
||||
@@ -1657,10 +1657,10 @@ describe('agent watch', () => {
|
||||
});
|
||||
|
||||
it('builds exact viewer attach command (read-only)', () => {
|
||||
expect(buildAgentWatchAttachCommand('canary-pi-watch-123', 'mosaic-factory')).toEqual([
|
||||
expect(buildAgentWatchAttachCommand('canary-pi-watch-123', 'mosaic-fleet')).toEqual([
|
||||
'tmux',
|
||||
'-L',
|
||||
'mosaic-factory',
|
||||
'mosaic-fleet',
|
||||
'attach',
|
||||
'-r',
|
||||
'-t',
|
||||
@@ -1669,10 +1669,10 @@ describe('agent watch', () => {
|
||||
});
|
||||
|
||||
it('builds exact viewer kill command', () => {
|
||||
expect(buildAgentWatchKillViewerCommand('canary-pi-watch-123', 'mosaic-factory')).toEqual([
|
||||
expect(buildAgentWatchKillViewerCommand('canary-pi-watch-123', 'mosaic-fleet')).toEqual([
|
||||
'tmux',
|
||||
'-L',
|
||||
'mosaic-factory',
|
||||
'mosaic-fleet',
|
||||
'kill-session',
|
||||
'-t',
|
||||
'canary-pi-watch-123',
|
||||
@@ -1769,10 +1769,10 @@ describe('agent watch', () => {
|
||||
|
||||
describe('agent send --verify', () => {
|
||||
it('builds exact verify capture-pane command', () => {
|
||||
expect(buildAgentVerifyAcceptedCommand('canary-pi', 'mosaic-factory', 5)).toEqual([
|
||||
expect(buildAgentVerifyAcceptedCommand('canary-pi', 'mosaic-fleet', 5)).toEqual([
|
||||
'tmux',
|
||||
'-L',
|
||||
'mosaic-factory',
|
||||
'mosaic-fleet',
|
||||
'capture-pane',
|
||||
'-t',
|
||||
'=canary-pi:0.0',
|
||||
@@ -2484,7 +2484,7 @@ describe('fleet add/remove — pure helpers', () => {
|
||||
const baseRoster: FleetRoster = {
|
||||
version: 1,
|
||||
transport: 'tmux',
|
||||
tmux: { socketName: 'mosaic-factory', holderSession: '_holder' },
|
||||
tmux: { socketName: 'mosaic-fleet', holderSession: '_holder' },
|
||||
defaults: { workingDirectory: '~/src' },
|
||||
runtimes: { codex: { resetCommand: '/clear' } },
|
||||
agents: [
|
||||
@@ -2610,7 +2610,7 @@ describe('fleet add/remove — pure helpers', () => {
|
||||
await writeFile(rosterPath, yaml);
|
||||
const loaded = await loadFleetRoster(rosterPath);
|
||||
expect(loaded.agents.map((a) => a.name)).toEqual(['orchestrator', 'coder0']);
|
||||
expect(loaded.tmux.socketName).toBe('mosaic-factory');
|
||||
expect(loaded.tmux.socketName).toBe('mosaic-fleet');
|
||||
expect(loaded.agents[0]!.className).toBe('orchestrator');
|
||||
} finally {
|
||||
await rm(dir, { recursive: true, force: true });
|
||||
|
||||
Reference in New Issue
Block a user