Skip to content

Add plan rfd#902

Open
anna239 wants to merge 2 commits intomainfrom
anna.zhdan/rfd-plan
Open

Add plan rfd#902
anna239 wants to merge 2 commits intomainfrom
anna.zhdan/rfd-plan

Conversation

@anna239
Copy link
Copy Markdown
Contributor

@anna239 anna239 commented Apr 2, 2026

No description provided.

@anna239 anna239 requested a review from a team as a code owner April 2, 2026 09:09

### Plan Removal

Agent sends a `plan_removed` session update with the plan's `id` to dismiss it. This is a separate session update type from `plan_update`, keeping content updates and lifecycle events distinct.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if there is a way to null out the content like we do in some other areas rather than have another notification type?
Just a thought.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought about this option, but then plan_remove event would also be typed — meaning that the agent needs to pass the correct entity type (file\markdown...). So I decided that providing just an id in a separate event is a simpler option. But we can change that

| ---------- | ----------------------------------------------------- | ---------------------- |
| `items` | Structured entries (same semantics as today's `plan`) | `entries: PlanEntry[]` |
| `file` | Agent provides a file URI containing the plan | `uri: string` |
| `markdown` | Agent provides raw markdown text | `content: string` |
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can add this later, but is there a need for a label/description for some of these types?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you mean like plan.name?

"type": "items",
"id": "plan-1",
"entries": [
{ "content": "Step 1", "priority": "high", "status": "pending" }
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the expectation of the client?
If I get multiple items updates, am I expected to render them all until they are removed?

And I assume the plan is "completed" not by being removed, but by all items being marked as done?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I get multiple items updates, am I expected to render them all until they are removed?

Plan update always updates the whole plan, each time you get it you should re-render all the entities.

And I assume the plan is "completed" not by being removed, but by all items being marked as done?

yes! Maybe we need something like plan.status in general, might be useful for file\markdown plan, but this can be added later

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants