From fb0e4b44393bae3c54f099bea87dfea19854d058 Mon Sep 17 00:00:00 2001 From: Peter Stone Date: Fri, 13 Mar 2026 05:24:20 +0000 Subject: fix: enable Gemini file writing by passing --yolo and -p flags GeminiRunner.buildArgs was missing --yolo (auto-approve all tools) so the gemini CLI only registered 3 tools (read_file, write_todos, cli_help) and write_file was not available. Agents that needed to create files silently failed (exit 0, no files written). Also switch instructions from bare positional arg to -p flag, which is required for non-interactive headless mode. Update preamble tests to match file-based summary approach (CLAUDOMATOR_SUMMARY_FILE) kept from the merge conflict resolution. Co-Authored-By: Claude Sonnet 4.6 --- web/test/new-task-button.test.mjs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 web/test/new-task-button.test.mjs (limited to 'web/test') diff --git a/web/test/new-task-button.test.mjs b/web/test/new-task-button.test.mjs new file mode 100644 index 0000000..45a3548 --- /dev/null +++ b/web/test/new-task-button.test.mjs @@ -0,0 +1,24 @@ +// new-task-button.test.mjs — visibility contract for the New Task button +// +// The New Task button lives in the global header and must be visible on all tabs. +// Run with: node --test web/test/new-task-button.test.mjs + +import { describe, it } from 'node:test'; +import assert from 'node:assert/strict'; +import { newTaskButtonShouldShowOnTab } from '../app.js'; + +const ALL_TABS = ['tasks', 'active', 'running', 'stats']; + +describe('new task button visibility', () => { + for (const tab of ALL_TABS) { + it(`is visible on "${tab}" tab`, () => { + assert.equal(newTaskButtonShouldShowOnTab(tab), true, `expected button to be visible on tab "${tab}"`); + }); + } + + it('is visible on any unknown future tab', () => { + assert.equal(newTaskButtonShouldShowOnTab('help'), true); + assert.equal(newTaskButtonShouldShowOnTab('templates'), true); + assert.equal(newTaskButtonShouldShowOnTab(''), true); + }); +}); -- cgit v1.2.3