Viewing project history

Viewing project history

How to read the timeline, inspect what a version changed, and rename versions so the history stays legible. · Optional

Open this when you want to answer "what changed, and when?" — after an agent run, a big regeneration, or just to audit a project's evolution.

Opening history

Open the History tab at the top of any project. It shows the timeline of every closed changeset for the project, newest first.

History timeline

Reading the timeline

Each entry is a card showing:

ElementWhat it tells you
vNThe sequence number — v1 is the genesis version captured when the project was created, v2 the next, and so on. Handy for referencing a version in conversation.
Actor badgeWho made the change — you, user, AI, MCP, or system, colour-coded for quick scanning.
TitleA short label (e.g. "Added admin features", "AI generation: personas").
AgeHow long ago it closed — "2 minutes ago", "yesterday", "3 days ago".
View / RevertAction buttons — see below and Reverting changes.

Empty state. A brand-new project with no edits shows "No history yet." Run a generation or make an edit and the first changeset appears within a few seconds.

Loading more. History loads in batches (~20 at a time). If there's more, a Load more button fetches the next page.

Inspecting what a version changed

Click View on any changeset to open its diff, showing the exact operations recorded, grouped by entity type:

  • + (green) — an entity was created
  • ~ (amber) — an entity was updated
  • (red) — an entity was deleted

Each row shows the entity's name, title, or "I want to…" line so you can recognise what was touched. Groups carry a count — e.g. "User stories (12)". A typical diff might read:

Features (3)
  + User onboarding flow
  ~ Dashboard analytics
  − Legacy CSV import

User stories (8)
  + As a user, I want to reset my password
  ~ As an admin, I want to invite team members
  ...

Schema columns (2)
  + email_verified_at
  ~ users.password_hash

This makes "what did the AI do in that last regeneration?" or "did my last edit delete something I wanted?" easy to answer.

💡 Tip: The diff currently shows what was touched, not field-level before/after values. Full field-level diffs are on the roadmap — the underlying data is already captured.

Renaming a changeset

Auto-generated titles are generic ("Direct edits", "AI generation: features"). Rename any changeset to something meaningful so the timeline reads cleanly later:

  1. Click the title (a pencil icon appears on hover).
  2. Type your new label.
  3. Confirm with the check icon, or cancel with the X.

Good titles answer "what was I trying to do here?":

  • "Added compliance officer persona + 3 features"
  • "Renamed Notifications to Alerts everywhere"
  • "First pass on schema for billing tables"

Rename liberally — there's no cost, and it pays off when you come back days later.

"No snapshot — read only"

Very old versions (or the rare never-closed one) may show "No snapshot — read only" instead of a Revert button. You can still View the diff, but you can't roll back directly to that exact point — revert to any later version that does have a snapshot instead. In practice, recent versions always have snapshots.

⚡ Power-user hints

  • Checkpoint before risky operations. Before asking the AI to do something experimental ("rewrite all my schema"), open History, note the current vN, and rename the latest closed changeset to "Stable: pre-schema-rewrite". You'll know exactly where to roll back.
  • Scan by badge, not by title. Looking for "what changed last Tuesday afternoon"? The colour-coded actor badges let you spot AI vs your own edits at a glance without reading every title.
  • Retain a state forever. Snapshots sit on a rolling window (paid plans get longer retention). To keep a specific state indefinitely, revert into it — it becomes the current state and gets snapshotted as normal.

↔ The traditional way

Auditing "what changed" by hand means diffing document versions, scrolling a chat log, and reconstructing intent from memory. Here the timeline is built for you, attributed by actor, and grouped into readable units — closer to reading a Git log than archaeology.

What's next