Skip to contents

Lists what has changed the project's grading state: every call of a markermd function that changed it (marks_import(), marks_set(), rubric_import(), rubric_item_set(), rubric_items_set(), rubric_item_delete(), template_import(), project_set(template = ...), snapshot_restore()), the bulk operations made in mark() (rubric imports and edits, item and group deletions, restores, recorded with the actor "app"), and the grading done in mark(), grouped into sessions of activity. Each recorded call notes who made it: the MARKERMD_ACTOR environment variable when set, "claude" or "codex" when the call ran under one of those agent CLIs, and "R" otherwise. Grading recorded before the log existed lists as app grading.

Usage

project_activity(
  project = ".",
  since = NULL,
  actor = NULL,
  app = TRUE,
  gap = 15 * 60
)

Arguments

project

Path to the project directory. Defaults to the working directory.

since

Optional date-time (or something as.POSIXct() accepts): only entries whose latest change is at or after it.

actor

Optional character vector: only entries by these actors ("app" for grading in mark()).

app

Whether to include the grading done in mark().

gap

Seconds without activity that end one app grading session.

Value

A data frame, newest first, with columns id, kind ("action" or "app"), created_at (the call, or an app session's last change), started_at, actor, username, fn, call, summary, n_pairs, n_events, snapshot_id (the snapshot taken before the change, if any) and the list columns repos, questions and parts (the template / rubric parts an action changed).

Details

Use activity_detail() for what one entry changed.

Examples

if (FALSE) { # \dontrun{
project_activity("hw01", actor = "claude")
} # }