diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-06-03 23:01:39 +0000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-06-03 23:01:39 +0000 |
| commit | 68cf1e24dd2ca2612b72babc4b35280cd3512f92 (patch) | |
| tree | 14b73f21570a2f42ae729ca7e9676de6628d6819 /web/test/new-task-button.test.mjs | |
| parent | b28cfc6ff288d083f6c8e9c055b69bfcadbceccc (diff) | |
| parent | 7388337d3be5cc7f65ef547e30b2e39884dd165b (diff) | |
merge: integrate oss branch — budget gating, MCP back-channel, events, loopback-only bind
Key features from OSS branch:
- Budget gating: rolling per-provider spend caps with BUDGET_EXCEEDED task state
- Agent MCP back-channel: runners mint tokens; /mcp endpoint resolves them
- Chatbot MCP server at /chatbot/mcp (requires api_token in config)
- Event timeline: unified event stream replacing ad-hoc question/summary flows
- Loopback-only default bind (127.0.0.1:8484); external_bind_allowed=true to expose
- repository_url required on task creation (enforces traceability)
- Auto-checker: spawns verification task after each execution
Conflict resolutions:
- serve.go: keep cfg.Runners.XEnabled() conditional registration from main + agentRegistry from oss
- config.go: keep RunnersConfig from main + BudgetConfig/ExternalBindAllowed from oss
- server.go: handleStaticFiles (base-path rewrite) kept; deduplicated duplicate from both sides
- executor/claude.go: accepted oss deletion (ClaudeRunner replaced by ContainerRunner)
- container_test.go: added noopChannel + AgentChannel parameter to Run call
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'web/test/new-task-button.test.mjs')
| -rw-r--r-- | web/test/new-task-button.test.mjs | 24 |
1 files changed, 0 insertions, 24 deletions
diff --git a/web/test/new-task-button.test.mjs b/web/test/new-task-button.test.mjs deleted file mode 100644 index 45a3548..0000000 --- a/web/test/new-task-button.test.mjs +++ /dev/null @@ -1,24 +0,0 @@ -// 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); - }); -}); |
