Skip to content

ProgressLog

This docs was updated at: 2026-03-21

com.paragon.harness.ProgressLog  ยท  Class


Append-only log of work items for tracking agent progress across sessions.

Each entry records a work item with its status (DONE, FAILED, IN_PROGRESS) and optional notes. The log is append-only to prevent accidental overwrites of completed work.

Use FilesystemArtifactStore or a custom store to persist the log across sessions.

Example usage:

ProgressLog log = ProgressLog.create();
log.append("Analyzed requirements", Status.DONE, "Extracted 12 features");
log.append("Write database schema", Status.IN_PROGRESS, null);
// In another session:
List pending = log.byStatus(Status.IN_PROGRESS);

Since: 1.0

Methods

of

public static @NonNull Entry of(
        @NonNull String description, @NonNull Status status, @Nullable String notes)

Creates an entry with an auto-generated ID and current timestamp.


create

public static @NonNull ProgressLog create()

Creates an empty progress log.


from

public static @NonNull ProgressLog from(@NonNull List<Entry> entries)

Creates a progress log from an existing list of entries (e.g., loaded from storage).

Parameters

Name Description
entries previously persisted entries

Returns

a new ProgressLog pre-populated with those entries


append

public @NonNull Entry append(
      @NonNull String description, @NonNull Status status, @Nullable String notes)

Appends a new entry to the log.

Parameters

Name Description
description what was done
status the status of the work item
notes optional notes

Returns

the entry that was added


all

public @NonNull List<Entry> all()

Returns all entries in append order.

Returns

unmodifiable view of all entries


byStatus

public @NonNull List<Entry> byStatus(@NonNull Status status)

Returns entries filtered by status.

Parameters

Name Description
status the status to filter by

Returns

list of entries with the given status


size

public int size()

Returns the total number of entries.

Returns

entry count


toSummary

public @NonNull String toSummary()

Returns a formatted summary of the log suitable for injection into agent context.

Returns

a multi-line string summarizing all entries