Skip to main content

Activity

cmd/crewship/cmd_activity.go is a journal-backed view: it queries GET /api/v1/journal filtered to the activity entry types (peer.conversation, peer.escalation, and the full assignment lifecycle assignment.createdassignment.runningassignment.completed/assignment.failed), descending by time, narrowable by crew. The journal is the canonical event stream, so this is an event feed (one row per event) — not the entity snapshot the retired /api/v1/activity aggregator returned. The terminal rows are included on purpose: without them the feed would never show an assignment finishing or failing. The parallel run.completed/run.failed entries (keyed by trace_id) are the finer per-run trace — use crewship journal for those. --since is now a server-side filter (the journal honours since=); --type remains a client-side substring match on the entry type. A repeated peer conversation (its question + answer share one thread_id) is collapsed to a single row. For a live tail of granular events, use crewship journal --follow or its shortcut crewship watch.

crewship activity

--export and the global --format overlap but differ: --format json|yaml|ndjson renders the fetched page like any other list command, while --export ndjson|csv is a dedicated dump path that can write to a file via --out and takes precedence when both are set.

Examples

Default output is a coloured one-line-per-event table with timestamps, the journal entry type (assignment.created, peer.conversation, peer.escalation, …), and the entry summary (which already names the participants, e.g. api asked db: …). --export csv columns are ts,entry_type,from_slug,to_slug,summary; the from/to slugs are resolved from the entry payload when present, otherwise from the workspace agent lookup (GET /api/v1/journal/lookup) keyed by actor_id/target_id — so an assignment row, which carries the assigner only as an id, still renders a real from. --export ndjson dumps each raw journal entry enriched with the resolved from_slug/to_slug.

Common errors

  • bad --since: <reason> — value did not parse as 1h/24h/7d or RFC3339.
  • --lines must be between 1 and 500 (got N) — out-of-range page size; pick a value in 1500.
  • --export must be ndjson or csv (got "xlsx") — only those two shapes are supported.
  • open --out: <fs error> — destination file path is unwritable.

See also