Expose plugin installation timestamps in app-server summaries (#35859)

## What changed

- Add nullable `installedAt` metadata to `PluginSummary` and its generated schemas, expressed as a Unix timestamp in seconds.
- Preserve the backend installation time for remote plugins across plugin list, installed, read, and share-list responses. Return `null` when the timestamp is unavailable, including for local or uninstalled plugins and older backend responses.

## Testing

- Cover timestamp conversion in the remote plugin list integration test and the field's serialization and backward-compatible default in protocol tests.

GitOrigin-RevId: 8a1640320adb298874e1074e9891d1017ad06937
This commit is contained in:
Eric Ning authored and copyberry committed 2026-07-29 01:16:29 +00:00
1 parent b9b7c21821
commit 28f3f1f9ef
19 files changed
+103 -2

No files matched your search

@@ -648,6 +648,10 @@ pub struct PluginSummary {
pub share_context: Option<PluginShareContext>,
pub source: PluginSource,
pub installed: bool,
/// Unix timestamp in seconds when the remote plugin was installed, when available.
#[serde(default)]
#[ts(type = "number | null")]
pub installed_at: Option<i64>,
pub enabled: bool,
pub install_policy: PluginInstallPolicy,
pub install_policy_source: Option<PluginInstallPolicySource>,