Activity shows everything an agent finished
Every write an agent makes in a channel lands in that channel's Activity — pages, filings, channels, routines, Plane tasks, routine briefs and charts — because the write itself records it. Mockups, today's workspace replayed, the edge cases with Vee's answers, and where the event log can go next.
What changes
Activity today lists only five kinds of work, each wired up by hand, and it started recording on 5 October. Anything newer than that list — a page Snoopy creates, a page it archives, a Plane task, a routine it sets up, a channel setting it changes — never shows, and a routine's daily brief only shows because the agent wraps its answer in a special format.
With this change, every write an agent finishes is recorded by the write itself. Activity reads that record. There is nothing for an agent to remember and no list to keep up to date: when we add a new kind of write next month, it shows up in Activity on the day it ships. Past agent work is filled in from the agents' run records on launch day, so channels don't start empty.
- TodayFiled receipt — Acme invoice.pdf
Saved information to workspace knowledge
Snoopy10:42 - Created #reimbursements
Created a new workspace channel
Snoopy09:15
- TodayRefund Acme overchargenew
Nok filed a task · WS-123 · Cycle 37
11:20 - Posted the Daily sales briefnew
Daily sales brief for Turbo
11:00 - Created page Q3 budgetnew
Created for Ploy
10:58 - Filed receipt — Acme invoice.pdf
Nok filed a receipt
10:42 - Archived page Old pricingnew
Archived for Ploy
10:05 - Created #reimbursements
Created for Nok
09:15
Each row says who the agent did it for, not which agent did it: there is one main agent today, so its name is left off. When there are several, it can come back on the bottom line.
Tapping a row
| Tap | Does |
|---|---|
| The title (underlined) | Opens the thing itself: the page, the channel, the source, or the task in Plane ↗ |
| Anywhere else on the row | Jumps to the agent's message about it in the chat, as today |
| A title that is not underlined | Nothing to open: the page is archived, the channel is gone, or the row is a message (a routine brief, a chart) |
| Long-press on mobile, hover on desktop | Shows the full title and subtitle when either is cut at two lines |
Everything that can appear
One row per thing an agent changed in a turn. The icon says what kind of thing changed; the title names it, using the name it had at that moment; the subtitle says who it was for.
| Kind | Example title | Example subtitle | Title opens | New? |
|---|---|---|---|---|
| Filed a source | Filed receipt — Acme invoice.pdf | Nok filed a receipt | the source | today |
| Organized a drop | Filed meeting notes — Acme kickoff | Saved for Nok | the source | today |
| Created a page | Created page Q3 budget | Created for Ploy | the page | new |
| Updated a page | Updated page Acme Corp | Updated for Nok | the page | today |
| Renamed a page | Renamed page to Q3 budget (final) | Renamed for Nok | the page | today |
| Archived / restored a page | Archived page Old pricing | Archived for Ploy | — / the page | new |
| Created a channel | Created #reimbursements | Created for Nok | the channel | today |
| Changed channel details | Updated #money description | Updated for Nok | the channel | new |
| Changed what a channel files | Set #money to file receipts automatically | Set up for Nok | the channel | new |
| Created / changed / removed a routine | Created routine Daily sales brief | Set up for Turbo | the routine | new |
| Ran a routine now | Ran Daily sales brief | Run for Turbo | — | new |
| A routine's result | Posted the Daily sales brief | Daily sales brief for Turbo | — | today, more reliable |
| A reply with a chart or visual | Posted a visual — Weekly revenue | Sales chart created for Turbo | — | new |
| Filed a Plane task | Refund Acme overcharge | Nok filed a task · WS-123 · Cycle 37 | the task in Plane ↗ | new |
- TodayCreated routine Weekday ops briefnew
Set up for Turbo · weekdays at 08:00
14:02 - Set #ops to file receipts automaticallynew
Set up for Ploy
13:47 - Updated #ops descriptionnew
Updated for Ploy
13:45 - YesterdayPosted a visual — Weekly revenuenew
Sales chart created for Turbo
17:30 - Renamed page to Q3 budget (final)
Renamed for Nok
16:12
Never in Activity: ordinary answers that saved nothing, questions the agent asked, approvals still waiting, failed attempts, and anything a member did by hand.
What our workspace would have shown
These counts are the agent writes in our own workspace over the 14 days to 5 October, read from the agents' run records. The channel names are ours; nothing else from those runs appears here.
| Channel | Agent writes (14 days) | Today's Activity could show | With the event log |
|---|---|---|---|
| #general | 18 filings, up to 12 channel creations, 3 organized drops, 2 new pages | filings, channels, organized drops | all of it, the 2 new pages included |
| #dev-test | up to 13 channel creations, 6 capture settings, 5 new routines, 2 routine edits, 2 filings | channels, filings | all of it: 13 settings and routine changes appear for the first time |
| #resources | 6 filings, 2 organized drops | all of it | all of it |
| #capture-test | 6 filings | all of it | all of it |
| #tennis | up to 17 channel creations | channels | channels |
| #pickleball | 2 channel edits | nothing | both edits |
| #bugs | 1 Plane task | nothing | the task, opening in Plane |
"Up to" because a channel creation waits for someone to approve it; only approved ones become entries. Today's tab actually holds one entry across the whole workspace, because it only started recording on 5 October. With the event log, everything in the right-hand column is there on launch day, filled in from the run records.
- TodayCreated #money
Created a new workspace channel
Snoopy12:33
- TodayCreated #money
Created for Turbo
12:33 - Created routine PR digestnew
Set up for Turbo · weekdays at 09:00
12:31 - Changed routine PR digestnew
Changed for Turbo · now 08:30
10:54 - SaturdayFiled link — Release checklist
Turbo filed a link
19:56 - 27 SepSet #capture-test to file links automaticallynew
Set up for Turbo
21:23
Edge cases, with Vee's answers
1. Several writes in one reply
Nok drops meeting notes; Snoopy files them (which updates two pages) and creates a new page for the follow-up. The filing and the pages it updated count as one outcome; the new page is its own row. Vee: separate rows.
- TodayCreated page Acme follow-ups
Created for Nok
15:10 - Filed meeting notes — Acme kickoff
Nok filed meeting notes · updated Acme Corp, Acme pilot
15:10
2. The same page changed again and again
Snoopy updates the Q3 budget page in five separate replies through the afternoon. Vee: every update is its own row. Within a single reply, everything done to one thing is one row: if Snoopy creates a page and then edits it before replying, that is "Created page Q3 budget".
- TodayUpdated page Q3 budget
Updated for Nok
16:40 - Updated page Q3 budget
Updated for Ploy
15:52 - Updated page Q3 budget
Updated for Nok
14:31
3. Something that needed approval
Nok asks Snoopy to create #reimbursements. Nothing appears while the request waits. When Nok approves, the entry appears; tapping the row opens Snoopy's reply after the approval (or the request card, until that reply exists). A declined request never appears. Vee: no need to say who approved. Today only the person who asked can approve, so the subtitle already names them.
- TodayCreated #reimbursements
Created for Nok
09:15
4. Routines
A routine's result appears once, with the clock icon. A routine run that failed, or that only asked a question, does not appear. Vee: agreed.
- TodayPosted the Daily sales brief
Daily sales brief for Turbo
08:00 - YesterdayPosted the Daily sales brief
Daily sales brief for Turbo
08:00
5. A Plane task
Vee: one row, with the cycle in the subtitle. When Snoopy files the task and adds it to the cycle in the same reply, that is one row. If it files the task now and adds it to the cycle in a later reply (for example after asking "add it to this cycle?"), those are two rows, each opening its own reply, because they happened as two separate steps in the chat.
- TodayLogin loops on Safari
Vee filed a bug report · WS-123 · Cycle 37
11:07
- TodayAdded WS-123 to Cycle 37
Planned for Vee
11:30 - Login loops on Safari
Vee filed a bug report · WS-123
11:07
If Plane is later disconnected, the title still opens Plane; it may ask the member to sign in there.
6. Things that changed name or went away
The title keeps the name from the moment it happened, because it is history. Vee: no need to show the current name, and an archived page gets nothing to open. A deleted channel's title is plain text too. Tapping the row still opens the agent's message.
- MondayCreated page Q3 plan
Created for Nok
10:20 - Archived page Old pricing
Archived for Ploy
09:40 - Created #offsite-2026
Created for Nok
09:02
7. The agent wrote, but its message never posted
Rare: Snoopy creates a page and then the run breaks before it can reply. The page exists, so the entry appears. Vee: show it; tapping the row says "Original message is unavailable". The title still opens the page.
- TodayCreated page Vendor list
Created for Nok
12:12· tap: “Original message is unavailable”
8. The agent asked a question
Vee: asking a question isn't activity — and it never is. Only something the agent changed becomes a row. If Snoopy creates a page and then asks Nok which template to use, the page is the row; tapping it opens the question, because that is Snoopy's only message in that reply.
9. A channel with nothing yet
A channel where no agent has ever changed anything shows the empty state. Vee: no date.
Nothing here yet. Activity lists what agents finish in this channel.
10. What members do themselves
Vee: only agent activity. When Nok renames a page by hand, it does not appear in Activity. We still keep a private record of it (nobody sees it), so features like "Who changed this?" or Undo can use it later.
11. Failures
A write that failed (for example, someone was removed from the workspace mid-reply) never appears in Activity. The member already sees the agent's reply explaining it. Vee: OK.
12. Long names and Thai
Vee: two lines at most for the title and the subtitle; long-press on mobile (hover on desktop) shows the full text.
- TodayFiled receipt — ใบเสร็จค่าเช่าสำนักงานเดือนกันยายน 2569 สาขาสุขุมวิท ชั้น 12 พร้อมค่าส่วนกลางและค่าที่จอดรถ.pdf
Nok filed a receipt · updated ค่าเช่าสำนักงาน 2569 และ สรุปค่าใช้จ่ายรายเดือน
10:42
Entries about a private channel are hidden from members who aren't in it, as Activity does today. There is nothing to design for that, so it is no longer an edge case here.
Where the event log can go next
The event log is a record of every change in the workspace: who did it, for whom, to what, and from which message. Activity is the first thing to read it. These are directions it makes cheap, not commitments.
| Direction | What a member gets | How it uses the log |
|---|---|---|
| Catch me up | "While you were away: Snoopy filed 6 receipts, created Q3 budget, and your Plane task moved." | A routine or a morning brief reads the events since you last opened the workspace. |
| Workspace activity | One feed across every channel you can see, filterable by agent, person or kind. | The same query as Activity, without the channel filter. |
| Follow something | Get pinged when the Acme Corp page or the #money settings change. | Notifications subscribe to events (the fan-out step). |
| When this happens, do that | "When a receipt is filed in #money, add it to the expenses sheet." | A routine triggered by an event type, built like today's agent + tool + rule rows. |
| Undo | An Undo on "Archived page Old pricing" or "Renamed page …". | Each event knows what changed, so its reverse is one write. |
| Who changed this? | An admin view: who changed a channel's settings, connected a service or created an API key. | Members' writes are recorded from day one; this is a filtered view. |
| Agent track record | How often Snoopy's actions get approved or fail, as a basis for auto-approving the safe ones. | Counts of proposal and failure events per agent. |
| Agents remember their work | "What did you do for me yesterday?" gets an exact answer. | The agent reads its own events. |
| Send it elsewhere | Post Activity to LINE or Slack, or a webhook. | Another subscriber to the same events. |
| Usage | Plan limits and billing based on what agents actually did. | Counting events per workspace. |
Vee's answers, and what's left
| # | Case | Vee's answer |
|---|---|---|
| 1 | Several writes from one reply | Separate rows |
| 2 | Same page updated repeatedly | Every update its own row (one row per thing per reply) |
| 3 | Approved actions | Don't name the approver |
| 4 | Routines | Agreed |
| 5 | Plane task + cycle | One row, cycle in the subtitle (when done in one reply) |
| 6 | Renamed or archived things | No current name; nothing to open when archived |
| 7 | Write with no message | Show it; tapping says "Original message is unavailable" |
| 8 | Questions | Never activity |
| 9 | Empty state | No date |
| 10 | Members' own changes | Agent activity only |
| 11 | Failures | OK |
| 12 | Long names | Two lines max, full text on long-press / hover |
| — | Private channels | Deferred as a design topic; entries stay hidden from non-members |
| — | Open link | Folded into the title |
| — | Subtitle | Names who the agent acted for; the agent's name is hidden for now |
Decided by Turbo for the build (6 October), open to Vee's refinement later:
- Two tap targets per row, and long-press on mobile (Tapping a row).
- The subtitle sentence for each kind, as drafted (Everything that can appear).
- A routine's result names the person who set the routine up.
Agent-managed knowledge
Knowledge sidebar, page reading and right-panel behavior, with interactive wireframes for alignment.
Edit and delete your message
Fix a message you sent, or take it back — every screen and edge case for sign-off before it's built, with the product and UX questions still open. CHAT-1.