Files
paseo/plugin-examples/timeline-items
Mohamed Boudra 7ae5133ed2 feat(plugins): let plugins transform and render timeline items (#3940)
* feat(plugins): add timeline item contributions

Keep canonical daemon history unchanged while plugins project and render custom timeline items in clients. Live matches refresh authoritative projected history before replacement so lifecycle deltas stay collapsed.

* fix(nix): update npm dependency hash

The plugin SDK lockfile change invalidated the fixed-output npm dependency derivation. Use the hash calculated by the macOS Nix build for the current lockfile.
2026-08-27 11:40:17 +02:00
..

Pi tasks timeline plugin example

This example implements the behavior proposed in Paseo PR #3751 as a plugin. It recognizes completed Pi todo tool calls from both @juicesharp/rpiv-todo and Pi's examples/extensions/todo.ts, replaces the tool-call entry with a versioned pi-task-list item, and renders the current task snapshot with a native React Native component.

The rpiv shape preserves pending, in_progress, and completed; deleted tombstones are omitted. Pi's example shape maps done to completed or pending. Malformed results and unrelated tool calls return undefined, leaving Paseo's original timeline entry unchanged.

The transformer is a pure client contribution. It receives the daemon's projected timeline item, returns plain plugin item objects, and runs against projected history. Matching live events refresh the authoritative projected tail first. The renderer validates data before Paseo mounts the component.