Changeset 0.27.4 (#171)
This commit is contained in:
83
CHANGELOG.md
83
CHANGELOG.md
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user