Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,22 @@ new version heading in the same commit.

## [Unreleased]

## [0.433.0] - 2026-09-10
### Added
- **What's new — a user-facing feed generated from this changelog.** The changelog is written for the
people who build Agentric; the people who use it need one sentence of "you can now …" and where to try
it. An entry now opts in with a `**For users:**` (or `**For admins:**`) line as the last line of its
bullet, and `src/edge/whats-new.ts` parses those lines into a **What's new** link under the version in
the console sidebar: a dialog grouped by release, with a per-member unread badge (the version they last
opened it at, stored in `settings`; a member who never opened it sees the last 14 days as new), "New"
highlights, admin-only entries filtered by role, and console links in an entry acting as its "try it".
Unreleased entries never show. One source of truth — a feature can't reach the feed without a changelog
entry, and the feed can't drift from what shipped. `GET /api/whats-new`, `POST /api/whats-new/seen`.
Backfilled for v0.430.0–v0.432.0; the convention is in CLAUDE.md → Versioning. Pinned by
`scripts/whats-new-test.cjs`.
**For users:** This panel. Each release, it lists what you can now do — with a link to try it. The
badge counts what's new since you last looked.

## [0.432.0] - 2026-09-10
### Added
- **`/agentric` helper commands — work the Tasks board from chat without starting an agent.** A small,
Expand All @@ -24,6 +40,9 @@ new version heading in the same commit.
needs the sender resolved to a member (identity map / ClickUp email); an unmapped sender is told how to
get linked instead of editing the shared board anonymously. Audited `chat.command`. Pinned by
`scripts/agentric-commands-test.cjs`.
**For users:** Work your tasks from Slack, Discord, Telegram or a ClickUp comment without starting an
agent: `/agentric tasks` lists yours, `/agentric task new <title> @agent` files one and hands it off,
and `/agentric status`, `done` and `reopen` update one. Type `/agentric help` to see them all.

## [0.431.0] - 2026-09-10
### Added
Expand All @@ -40,13 +59,17 @@ new version heading in the same commit.
so a racing duplicate webhook re-reads the task rather than filing a second one. Audited
`clickup.task.linked` / `clickup.task.discussed` / `clickup.task.failed`. Pinned by
`scripts/clickup-task-bridge-test.cjs`; design in `docs/clickup-task-bridge-plan.md`.
**For users:** Comment `/agentric <text>` on a ClickUp ticket and it gets ONE Agentric task, titled
`#<ticket id> <heading>`; every later `/agentric` comment adds to that same task. `/agentric <agent>
<request>` also puts that agent on it, and reopens it if it was done.

### Fixed
- **`/agentric <agent>` only worked in Slack.** The roster reply tells people to type `/agentric <agent> …`
on every platform, but only Slack strips it (as a declared slash command); on Discord, Telegram and
ClickUp the namespace wasn't recognised, so the message was read as addressing an agent called
`agentric` and answered with "I don't have an agent named `agentric`". The chat normaliser now strips
`/agentric` alongside `/agent-os` / `/agentos` (`CHAT_NAMESPACE_RE`, shared with the ClickUp ingress).
**For users:** `/agentric <agent> <request>` now works in Discord, Telegram and ClickUp, not just Slack.

## [0.430.0] - 2026-09-10
### Added
Expand All @@ -56,14 +79,21 @@ new version heading in the same commit.
lens (`Anyone · I filed · People · Agents`, each with a facet count), names the filer on the card and in
the list row whenever that isn't the assignee, lists **Group: Filed by** in the list view, and stamps
`filed by …` in the task room's meta line.
**For users:** Find your own tasks fast: the Tasks board's new **Filed by** filter has **I filed**,
**People** and **Agents** — pair **I filed** with **Done** to pick finished work back up. Cards now say
who filed each task. [Open Tasks](#/tasks)
- **Tasks: a top-level lens.** A one-click *Top level* filter hides every task with a parent — the
decomposition an agent split out of its own work — leaving the work somebody actually asked for. Shown
only when the board holds sub-tasks, with a count of what it would hide. Board cards now also show a
`↳ <parent>` chip linking to the task they were split from.
**For users:** Hide the sub-tasks agents split out of their work with the **Top level** filter; a
sub-task's card links back to its parent with `↳`. [Open Tasks](#/tasks)
- Creating a task **opens it**. The create form used to drop you back on the board with the new card
somewhere in it; you then had to find your own task to add detail or dispatch it. It now navigates to
`#/tasks/<id>` — the room, where the next action is. (Board is refreshed first, so closing the room
lands on a list that already holds the card.)
**For users:** Creating a task now takes you straight into it, ready to add detail or hand it to an
agent.

### Fixed
- **List view: `Group: Chain` could not be selected.** The mode was implemented and named in the group
Expand Down
7 changes: 7 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -751,6 +751,13 @@ a new version heading in the same commit. The sidebar version therefore tells yo
build a long-running server is holding in memory — the first thing to check when a change "isn't
taking".

**What's new is generated from the changelog.** An entry a USER would notice also carries a
`**For users:**` line (or `**For admins:**` for owner/admin-only features) as the last line of its
bullet: one or two sentences of "you can now …", in plain words, optionally ending with a console link
(`[Open Tasks](#/tasks)`). `src/edge/whats-new.ts` parses those lines into the console's **What's new**
panel (sidebar, per-member unread badge). Internal fixes and refactors get no tag — the feed is only
useful while it stays short. Entries under **Unreleased** never show; they appear once the version ships.

**Bump with `npm version`, never by hand-editing `package.json`.** The lockfile also records the root
version (in `.version` AND `.packages[""].version`), and npm rewrites both on the next `npm install`.
So a hand bump leaves `package-lock.json` behind, and the drift surfaces on the DEPLOY box:
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "agent-os",
"version": "0.432.0",
"version": "0.433.0",
"description": "A generic, governed operating system for running autonomous agents safely across brands. Ships with a local web console.",
"license": "MIT",
"type": "commonjs",
Expand All @@ -27,7 +27,7 @@
"check-deps": "bash scripts/install-deps.sh --check",
"dev": "ts-node src/cli.ts serve",
"demo:dev": "ts-node src/demo.ts",
"test:governance": "node scripts/version-sync-test.cjs && node scripts/governance-conformance.cjs && node scripts/tier-a-policy-test.cjs && node scripts/policy-baseline-test.cjs && node scripts/heredoc-intent-test.cjs && node scripts/capability-registry-test.cjs && node scripts/composio-envelope-test.cjs && node scripts/composio-identity-test.cjs && node scripts/idle-reaper-test.cjs && node scripts/dm-continuity-test.cjs && node scripts/telegram-dm-lane-test.cjs && node scripts/cli-link-origin-test.cjs && node scripts/alert-staleness-test.cjs && node scripts/run-as-identity-test.cjs && node scripts/email-identity-guard-test.cjs && node scripts/deps-freshness-test.cjs && node scripts/runtime-account-test.cjs && node scripts/runtime-account-misattribution-test.cjs && node scripts/runtime-usage-refresh-test.cjs && node scripts/keychain-credential-test.cjs && node scripts/credential-preflight-test.cjs && node scripts/runtime-login-test.cjs && node scripts/rotate-on-reload-test.cjs && node scripts/headless-resumable-test.cjs && node scripts/session-revive-gates-test.cjs && node scripts/claude-config-seed-test.cjs && node scripts/claude-config-isolation-test.cjs && node scripts/output-style-test.cjs && node scripts/session-cost-test.cjs && node scripts/chain-model-test.cjs && node scripts/task-workers-test.cjs && node scripts/tuning-patch-test.cjs && node scripts/task-runs-test.cjs && node scripts/task-pr-links-test.cjs && node scripts/task-draft-delete-test.cjs && node scripts/task-discussion-delivery-test.cjs && node scripts/task-resume-test.cjs && node scripts/warm-chat-test.cjs && node scripts/poke-warm-caller-test.cjs && node scripts/wakeup-queue-test.cjs && node scripts/stranded-human-stop-test.cjs && node scripts/inject-submit-test.cjs && node scripts/blocked-routing-test.cjs && node scripts/self-dispatch-guard-test.cjs && node scripts/agent-edit-guard-test.cjs && node scripts/per-agent-context-test.cjs && node scripts/goal-update-guard-test.cjs && node scripts/insights-signal-test.cjs && node scripts/outcome-derivation-test.cjs && node scripts/episode-quality-test.cjs && node scripts/memory-upkeep-test.cjs && node scripts/automem-health-test.cjs && node scripts/memory-store-switch-test.cjs && node scripts/memory-preload-test.cjs && node scripts/turn-lifecycle-test.cjs && node scripts/resume-seed-test.cjs && node scripts/outcome-vocabulary-test.cjs && node scripts/skill-presets-test.cjs && node scripts/skill-edit-proposal-test.cjs && node scripts/notify-hook-route-test.cjs && node scripts/review-notify-test.cjs && node scripts/turn-idle-background-guard-test.cjs && node scripts/waiting-brief-test.cjs && node scripts/runtime-death-alert-test.cjs && node scripts/github-per-member-test.cjs && node scripts/card-measurement-test.cjs && node scripts/scheduler-admission-test.cjs && node scripts/tick-liveness-test.cjs && node scripts/audit-mirror-test.cjs && node scripts/request-metrics-test.cjs && node scripts/tool-usage-test.cjs && node scripts/sessions-list-perf-test.cjs && node scripts/summarizer-degradation-test.cjs && node scripts/agent-history-scope-test.cjs && node scripts/webhook-ingress-test.cjs && node scripts/slack-content-filter-test.cjs && node scripts/slack-ingress-test.cjs && node scripts/discord-ingress-test.cjs && node scripts/chat-attachments-test.cjs && node scripts/clickup-task-bridge-test.cjs && node scripts/agentric-commands-test.cjs && node scripts/opencode-gate-test.cjs && node scripts/protected-path-guard-test.cjs && node scripts/attach-grace-test.cjs && node scripts/attach-file-liveness-test.cjs && node scripts/feed-smoke.cjs && node scripts/activity-classify-test.cjs && node scripts/goal-room-test.cjs && node scripts/secret-rotation-test.cjs && node scripts/update-watch-test.cjs && node scripts/runtime-update-watch-test.cjs && node scripts/setup-wizard-test.cjs && node scripts/md-pdf-test.cjs && node scripts/proposal-surfacing-test.cjs && node scripts/process-janitor-test.cjs && node scripts/detached-work-steer-test.cjs && node scripts/statusline-install-test.cjs && node scripts/docs-create-agent-test.cjs && node scripts/agent-stats-rollup-test.cjs && node scripts/task-discussion-rollup-test.cjs && node scripts/session-insights-stamp-test.cjs && node scripts/loop-stall-attribution-test.cjs && node scripts/session-progress-test.cjs && node scripts/capability-gap-test.cjs && node scripts/workflow-proposal-test.cjs",
"test:governance": "node scripts/version-sync-test.cjs && node scripts/governance-conformance.cjs && node scripts/tier-a-policy-test.cjs && node scripts/policy-baseline-test.cjs && node scripts/heredoc-intent-test.cjs && node scripts/capability-registry-test.cjs && node scripts/composio-envelope-test.cjs && node scripts/composio-identity-test.cjs && node scripts/idle-reaper-test.cjs && node scripts/dm-continuity-test.cjs && node scripts/telegram-dm-lane-test.cjs && node scripts/cli-link-origin-test.cjs && node scripts/alert-staleness-test.cjs && node scripts/run-as-identity-test.cjs && node scripts/email-identity-guard-test.cjs && node scripts/deps-freshness-test.cjs && node scripts/runtime-account-test.cjs && node scripts/runtime-account-misattribution-test.cjs && node scripts/runtime-usage-refresh-test.cjs && node scripts/keychain-credential-test.cjs && node scripts/credential-preflight-test.cjs && node scripts/runtime-login-test.cjs && node scripts/rotate-on-reload-test.cjs && node scripts/headless-resumable-test.cjs && node scripts/session-revive-gates-test.cjs && node scripts/claude-config-seed-test.cjs && node scripts/claude-config-isolation-test.cjs && node scripts/output-style-test.cjs && node scripts/session-cost-test.cjs && node scripts/chain-model-test.cjs && node scripts/task-workers-test.cjs && node scripts/tuning-patch-test.cjs && node scripts/task-runs-test.cjs && node scripts/task-pr-links-test.cjs && node scripts/task-draft-delete-test.cjs && node scripts/task-discussion-delivery-test.cjs && node scripts/task-resume-test.cjs && node scripts/warm-chat-test.cjs && node scripts/poke-warm-caller-test.cjs && node scripts/wakeup-queue-test.cjs && node scripts/stranded-human-stop-test.cjs && node scripts/inject-submit-test.cjs && node scripts/blocked-routing-test.cjs && node scripts/self-dispatch-guard-test.cjs && node scripts/agent-edit-guard-test.cjs && node scripts/per-agent-context-test.cjs && node scripts/goal-update-guard-test.cjs && node scripts/insights-signal-test.cjs && node scripts/outcome-derivation-test.cjs && node scripts/episode-quality-test.cjs && node scripts/memory-upkeep-test.cjs && node scripts/automem-health-test.cjs && node scripts/memory-store-switch-test.cjs && node scripts/memory-preload-test.cjs && node scripts/turn-lifecycle-test.cjs && node scripts/resume-seed-test.cjs && node scripts/outcome-vocabulary-test.cjs && node scripts/skill-presets-test.cjs && node scripts/skill-edit-proposal-test.cjs && node scripts/notify-hook-route-test.cjs && node scripts/review-notify-test.cjs && node scripts/turn-idle-background-guard-test.cjs && node scripts/waiting-brief-test.cjs && node scripts/runtime-death-alert-test.cjs && node scripts/github-per-member-test.cjs && node scripts/card-measurement-test.cjs && node scripts/scheduler-admission-test.cjs && node scripts/tick-liveness-test.cjs && node scripts/audit-mirror-test.cjs && node scripts/request-metrics-test.cjs && node scripts/tool-usage-test.cjs && node scripts/sessions-list-perf-test.cjs && node scripts/summarizer-degradation-test.cjs && node scripts/agent-history-scope-test.cjs && node scripts/webhook-ingress-test.cjs && node scripts/slack-content-filter-test.cjs && node scripts/slack-ingress-test.cjs && node scripts/discord-ingress-test.cjs && node scripts/chat-attachments-test.cjs && node scripts/clickup-task-bridge-test.cjs && node scripts/agentric-commands-test.cjs && node scripts/whats-new-test.cjs && node scripts/opencode-gate-test.cjs && node scripts/protected-path-guard-test.cjs && node scripts/attach-grace-test.cjs && node scripts/attach-file-liveness-test.cjs && node scripts/feed-smoke.cjs && node scripts/activity-classify-test.cjs && node scripts/goal-room-test.cjs && node scripts/secret-rotation-test.cjs && node scripts/update-watch-test.cjs && node scripts/runtime-update-watch-test.cjs && node scripts/setup-wizard-test.cjs && node scripts/md-pdf-test.cjs && node scripts/proposal-surfacing-test.cjs && node scripts/process-janitor-test.cjs && node scripts/detached-work-steer-test.cjs && node scripts/statusline-install-test.cjs && node scripts/docs-create-agent-test.cjs && node scripts/agent-stats-rollup-test.cjs && node scripts/task-discussion-rollup-test.cjs && node scripts/session-insights-stamp-test.cjs && node scripts/loop-stall-attribution-test.cjs && node scripts/session-progress-test.cjs && node scripts/capability-gap-test.cjs && node scripts/workflow-proposal-test.cjs",
"test:alert-staleness": "node scripts/alert-staleness-test.cjs",
"test:deps": "node scripts/deps-freshness-test.cjs && node scripts/runtime-account-test.cjs && node scripts/runtime-account-misattribution-test.cjs && node scripts/runtime-login-test.cjs && node scripts/claude-config-seed-test.cjs && node scripts/claude-config-isolation-test.cjs",
"test:dm-continuity": "node scripts/dm-continuity-test.cjs",
Expand Down
Loading
Loading