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 Figure: History timeline.

Reading the timeline

Each entry is a card showing:

ElementWhat it tells you
vNThe sequence number, assigned when a changeset closes. Numbering starts at v0 and increments from there; on a project where version control was switched on retrospectively, v0 is the genesis entry, "Initial project state (imported)". 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 project with nothing recorded shows "No history yet. Start editing to see changesets appear here." On a project that's already recording, the first changeset appears within a few seconds of an edit. If you've been editing for a while and it's still empty, version control hasn't been switched on for that project yet — see When history starts recording.

Loading more. History loads in batches of 50. 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"

Some versions show "No snapshot — read only" instead of a Revert button: historical entries imported when version control was switched on for the project, and any changeset that hasn't closed yet. 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. Versions recorded in the normal course of editing always have one.

⚡ 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.
  • Promote a state you want to keep. To make an old state the live one, revert into it — it becomes the current state and gets snapshotted as normal, and your previous current state is preserved beside it in the timeline.

↔ 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