Woodstock Docs
Proposals

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.

Built in PLAT-22 (6 October), live once its migration lands. What Activity does now is described on the Chat page; this page keeps the design record. The backend design is agreed with Turbo (decision log 0246). This page is the outcome it has to produce: what a member sees in a channel's Activity tab. The last three open points were decided by Turbo so the build can start; Vee can refine them afterwards.

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.

money
ActivityRoutinesMembers
  1. Today
    Filed receipt — Acme invoice.pdf

    Saved information to workspace knowledge

    Snoopy10:42
  2. Created #reimbursements

    Created a new workspace channel

    Snoopy09:15
Today. Only filing, page edits, renames, organizing and channel creation can appear.
money
ActivityRoutinesMembers
  1. Today
    Refund Acme overchargenew

    Nok filed a task · WS-123 · Cycle 37

    11:20
  2. Posted the Daily sales briefnew

    Daily sales brief for Turbo

    11:00
  3. Created page Q3 budgetnew

    Created for Ploy

    10:58
  4. Filed receipt — Acme invoice.pdf

    Nok filed a receipt

    10:42
  5. Archived page Old pricingnew

    Archived for Ploy

    10:05
  6. Created #reimbursements

    Created for Nok

    09:15
With the event log. The same morning. Entries marked new cannot appear today. Underlined titles open the thing itself.

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

TapDoes
The title (underlined)Opens the thing itself: the page, the channel, the source, or the task in Plane ↗
Anywhere else on the rowJumps to the agent's message about it in the chat, as today
A title that is not underlinedNothing 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 desktopShows the full title and subtitle when either is cut at two lines
Decided for the build: two tap targets in one row, and long-press for the full text on mobile. It keeps today's jump-to-message and adds the open without a separate button. Vee can refine it later.

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.

KindExample titleExample subtitleTitle opensNew?
Filed a sourceFiled receipt — Acme invoice.pdfNok filed a receiptthe sourcetoday
Organized a dropFiled meeting notes — Acme kickoffSaved for Nokthe sourcetoday
Created a pageCreated page Q3 budgetCreated for Ploythe pagenew
Updated a pageUpdated page Acme CorpUpdated for Nokthe pagetoday
Renamed a pageRenamed page to Q3 budget (final)Renamed for Nokthe pagetoday
Archived / restored a pageArchived page Old pricingArchived for Ploy— / the pagenew
Created a channelCreated #reimbursementsCreated for Nokthe channeltoday
Changed channel detailsUpdated #money descriptionUpdated for Nokthe channelnew
Changed what a channel filesSet #money to file receipts automaticallySet up for Nokthe channelnew
Created / changed / removed a routineCreated routine Daily sales briefSet up for Turbothe routinenew
Ran a routine nowRan Daily sales briefRun for Turbo—new
A routine's resultPosted the Daily sales briefDaily sales brief for Turbo—today, more reliable
A reply with a chart or visualPosted a visual — Weekly revenueSales chart created for Turbo—new
Filed a Plane taskRefund Acme overchargeNok filed a task · WS-123 · Cycle 37the task in Plane ↗new
Decided for the build: the subtitle sentences above, one per kind; a routine's result names the person who set the routine up ("Daily sales brief for Turbo"), so every row answers "for whom". The wording is copy, so Vee can change it later without any other change.
ops
ActivityRoutinesMembers
  1. Today
    Created routine Weekday ops briefnew

    Set up for Turbo · weekdays at 08:00

    14:02
  2. Set #ops to file receipts automaticallynew

    Set up for Ploy

    13:47
  3. Updated #ops descriptionnew

    Updated for Ploy

    13:45
  4. Yesterday
    Posted a visual — Weekly revenuenew

    Sales chart created for Turbo

    17:30
  5. Renamed page to Q3 budget (final)

    Renamed for Nok

    16:12
Settings and routines, which never appear today.

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.

ChannelAgent writes (14 days)Today's Activity could showWith the event log
#general18 filings, up to 12 channel creations, 3 organized drops, 2 new pagesfilings, channels, organized dropsall of it, the 2 new pages included
#dev-testup to 13 channel creations, 6 capture settings, 5 new routines, 2 routine edits, 2 filingschannels, filingsall of it: 13 settings and routine changes appear for the first time
#resources6 filings, 2 organized dropsall of itall of it
#capture-test6 filingsall of itall of it
#tennisup to 17 channel creationschannelschannels
#pickleball2 channel editsnothingboth edits
#bugs1 Plane tasknothingthe 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.

dev-test
ActivityRoutinesMembers
  1. Today
    Created #money

    Created a new workspace channel

    Snoopy12:33
#dev-test today: one entry, from the morning Activity started recording.
dev-test
ActivityRoutinesMembers
  1. Today
    Created #money

    Created for Turbo

    12:33
  2. Created routine PR digestnew

    Set up for Turbo · weekdays at 09:00

    12:31
  3. Changed routine PR digestnew

    Changed for Turbo · now 08:30

    10:54
  4. Saturday
    Filed link — Release checklist

    Turbo filed a link

    19:56
  5. 27 Sep
    Set #capture-test to file links automaticallynew

    Set up for Turbo

    21:23
#dev-test on launch day, with the past filled in (titles illustrative).

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.

sales
ActivityRoutinesMembers
  1. Today
    Created page Acme follow-ups

    Created for Nok

    15:10
  2. 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".

money
ActivityRoutinesMembers
  1. Today
    Updated page Q3 budget

    Updated for Nok

    16:40
  2. Updated page Q3 budget

    Updated for Ploy

    15:52
  3. 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.

money
ActivityRoutinesMembers
  1. Today
    Created #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.

money
ActivityRoutinesMembers
  1. Today
    Posted the Daily sales brief

    Daily sales brief for Turbo

    08:00
  2. Yesterday
    Posted 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.

bugs
ActivityRoutinesMembers
  1. Today
    Login loops on Safari

    Vee filed a bug report · WS-123 · Cycle 37

    11:07
Filed and added to the cycle in one reply.
bugs
ActivityRoutinesMembers
  1. Today
    Added WS-123 to Cycle 37

    Planned for Vee

    11:30
  2. Login loops on Safari

    Vee filed a bug report · WS-123

    11:07
Added to the cycle in a later reply.

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.

money
ActivityRoutinesMembers
  1. Monday
    Created page Q3 plan

    Created for Nok

    10:20
  2. Archived page Old pricing

    Archived for Ploy

    09:40
  3. 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.

money
ActivityRoutinesMembers
  1. Today
    Created 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.

money
ActivityRoutinesMembers

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.

บัญชี
ActivityRoutinesMembers
  1. Today
    Filed 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.

DirectionWhat a member getsHow 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 activityOne feed across every channel you can see, filterable by agent, person or kind.The same query as Activity, without the channel filter.
Follow somethingGet 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.
UndoAn 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 recordHow 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 elsewherePost Activity to LINE or Slack, or a webhook.Another subscriber to the same events.
UsagePlan limits and billing based on what agents actually did.Counting events per workspace.

Vee's answers, and what's left

#CaseVee's answer
1Several writes from one replySeparate rows
2Same page updated repeatedlyEvery update its own row (one row per thing per reply)
3Approved actionsDon't name the approver
4RoutinesAgreed
5Plane task + cycleOne row, cycle in the subtitle (when done in one reply)
6Renamed or archived thingsNo current name; nothing to open when archived
7Write with no messageShow it; tapping says "Original message is unavailable"
8QuestionsNever activity
9Empty stateNo date
10Members' own changesAgent activity only
11FailuresOK
12Long namesTwo lines max, full text on long-press / hover
—Private channelsDeferred as a design topic; entries stay hidden from non-members
—Open linkFolded into the title
—SubtitleNames 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:

  1. Two tap targets per row, and long-press on mobile (Tapping a row).
  2. The subtitle sentence for each kind, as drafted (Everything that can appear).
  3. A routine's result names the person who set the routine up.

On this page