fix: support URL parameter in tab new command (#64)
* fix: support URL parameter in tab new command The CLI was correctly sending the URL parameter when running `agent-browser tab new <url>`, but the TypeScript daemon was ignoring it because: 1. The schema didn't include the url field (stripped during validation) 2. The TabNewCommand type didn't have a url property 3. The handler didn't pass the URL to browser.newTab() 4. browser.newTab() didn't accept or use a URL parameter This fix adds URL support throughout the chain so that `agent-browser tab new https://example.com` now correctly opens a new tab and navigates to the specified URL. Fixes #62 * fix: omit url field when not provided in tab new command Previously, the CLI always sent "url": null when no URL was provided, which caused Zod validation to fail with "Expected string, received null". Now the url field is only included when a URL is actually provided. Fixes issue reported by @ctate in PR review. * refactor: move navigation logic from BrowserManager to handleTabNew Address review feedback: - Add .min(1) to URL validation for consistency with navigateSchema - Keep BrowserManager.newTab() simple (single responsibility) - Handle navigation in handleTabNew following same pattern as handleNavigate
This commit is contained in:
@@ -373,6 +373,14 @@ describe('parseCommand', () => {
|
||||
expect(result.success).toBe(true);
|
||||
});
|
||||
|
||||
it('should parse tab_new with url', () => {
|
||||
const result = parseCommand(cmd({ id: '1', action: 'tab_new', url: 'https://example.com' }));
|
||||
expect(result.success).toBe(true);
|
||||
if (result.success) {
|
||||
expect((result.command as { url?: string }).url).toBe('https://example.com');
|
||||
}
|
||||
});
|
||||
|
||||
it('should parse tab_list', () => {
|
||||
const result = parseCommand(cmd({ id: '1', action: 'tab_list' }));
|
||||
expect(result.success).toBe(true);
|
||||
|
||||
Reference in New Issue
Block a user