Skip to content

Conversation

@ahmedhesham6
Copy link
Contributor

This commit introduces the session/list capability, allowing agents to list existing sessions with optional filtering and pagination. It includes the ListSessionsRequest and ListSessionsResponse structures, along with the necessary updates to the protocol documentation and JSON schema. This feature is marked as UNSTABLE and may change in future iterations.

This commit introduces the `session/list` capability, allowing agents to list existing sessions with optional filtering and pagination. It includes the `ListSessionsRequest` and `ListSessionsResponse` structures, along with the necessary updates to the protocol documentation and JSON schema. This feature is marked as **UNSTABLE** and may change in future iterations.
@ahmedhesham6 ahmedhesham6 requested a review from a team November 6, 2025 00:40
"description": "Unique identifier for the session"
},
"title": {
"description": "Human-readable title (may be auto-generated from first prompt)",

Choose a reason for hiding this comment

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

Made a discussion comment here, but wondering

While true it may be auto-generated, the impact is you shouldn't cache this right? Because it might be initially empty or a fake initial value like "Goose ACP". It seems several flows indeed do a lazy one-time update, but I'm not sure if that's only one time always (e.g. should this just be assumed never cacheable unlike the sessionId, which should me immutable?)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

There is nothing in the spec says it should be cached, Its more of an ACP client preference but when using session/list I agree that we should return the latest title

"type": ["string", "null"]
},
"updatedAt": {
"description": "ISO 8601 timestamp of last activity",

Choose a reason for hiding this comment

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

This might be a great place to clarify the impact of the other field.

Suggested change
"description": "ISO 8601 timestamp of last activity",
"description": "ISO 8601 timestamp of last activity, such as title update",

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That’s debatable from an experience standpoint. Why should the order of the sessions change just because the title changed? It also depends on each agent’s behavior — some update the session’s updated_at when the title changes, and some don’t.

Copy link

@codefromthecrypt codefromthecrypt left a comment

Choose a reason for hiding this comment

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

forgive me if there are standards in general we are using which indicate serialize null on a non-required field. this is a bikeshed, just trying to understand if we are intentional on this or if it was just a practice and not too late to discuss it.

},
"title": {
"description": "Human-readable title (may be auto-generated from first prompt)",
"type": ["string", "null"]

Choose a reason for hiding this comment

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

I'm not sure if we have value both marking something optional (not required field) and also nullable. since this is not a required field, should we just simplify to when present, put in a valid string?

Suggested change
"type": ["string", "null"]
"type": "string"

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