Changeset 0.27.4 (#171)

This commit is contained in:
2026-03-11 10:30:12 +00:00
parent a46ec63464
commit 07432233f7
13 changed files with 736 additions and 57 deletions

View File

@@ -1,5 +1,88 @@
# Changelog
## [0.27.5] — 2026-03-11
### Summary
Team tasks — team members can view team-scoped tasks, team admins can
create and manage them. Settings and sidebar surfaces show team tasks
alongside personal tasks with team attribution badges.
### Added
#### Team Task Routes
- `GET /api/v1/teams/:teamId/tasks` — list team tasks (any team member).
- `POST /api/v1/teams/:teamId/tasks` — create team-scoped task (team admin).
- `PUT/DELETE/run/kill` on team-scoped task routes (team admin).
#### Access Control Helpers
- `canAccessTask()` — owner, system admin, or team member for team tasks.
- `canMutateTask()` — owner, system admin, or team admin for team tasks.
- Both used across Get, Update, Delete, ListRuns, RunNow, KillRun.
#### Frontend
- Settings Tasks section fetches team tasks via `/teams/mine` + per-team
`/teams/:id/tasks`. Shows team badge on team-scoped tasks.
- Sidebar Tasks section includes active team tasks with `[TeamName]` label.
### Fixed
- `ListRuns` handler now checks task access (was unauthenticated — any
user with a task ID could read run history).
## [0.27.4] — 2026-03-11
### Summary
Personal tasks — the user-facing task experience. Settings surface gains a
Tasks section with CRUD, schedule builder (presets + custom cron + timezone),
and 5 starter templates. Chat sidebar gains a Tasks section showing active
tasks with status indicators and run-now buttons. Executor gains note output
mode and BYOK provider enforcement.
### Added
#### Settings → Tasks Section (`task-settings.js`)
- **Task list** with name, schedule, timezone, last/next run, status badges.
Pause/resume toggle, run-now, and delete buttons per task.
- **Create task form:** name, model, prompt editor, schedule builder (6
presets + custom cron), timezone (defaults to browser), output mode
(channel/note/webhook), budget overrides, notification toggles.
- **5 starter templates:** Morning News Digest, Daily Standup Prep, Weekly
Project Summary, Stock Watchlist Check, Research Digest. Click to
pre-populate the create form.
#### Tasks Sidebar Section (`task-sidebar.js`)
- New collapsible sidebar section (after Workflows/Queue).
- Shows active tasks with status indicators: ✓ (last run succeeded),
◷ (scheduled). Click opens the task's output channel.
- Per-task ▶ run-now button.
- Auto-refreshes on chat list update.
#### BYOK Provider Enforcement
- `tasks.personal_require_byok` global config key (default: false). When
true, personal-scope tasks fail with a clear error if no BYOK provider
is available — prevents fallthrough to org providers.
- Admin configuration UI in admin Tasks → Configuration tab.
#### Note Output Mode
- `output_mode: "note"` now functional. Task executor creates a note
(title: "{task name} — {timestamp}", tags: ["task-output"]) instead of
a message in the service channel. Good for structured reports.
### Changed
- `taskutil.TaskConfig` gains `PersonalRequireBYOK` field.
- `executor.go` persistence section rewritten as `output_mode` switch
(channel/note/webhook).
- `task-admin.js` config tab gains "Require BYOK for Personal" toggle.
- `ui-core.js` `renderChatList` refreshes `TaskSidebar` alongside
`WorkflowQueue`.
- `settings.html` gains Tasks nav link and panel mount point.
- `chat.html` includes `task-sidebar.js`.
## [0.27.3] — 2026-03-10
### Summary