History

Open Stories and Issues

From a History record, I should be able to click through to the changed Thing: Straightforward -- the main question is which version of the Thing this should take me to. Before the edit, after, or current?
From an Edit History record, I should be able to see a before-and-after diff: This needs some serious design, particularly for what it looks like when it's a small text edit in a large text.
Have the SpaceHistory Actor track the current events: In order to make it more efficient to undelete accidental deletions, keep the recent states and events in memory.
History display always shows the most-recent Names for Things: Related to this: Deleted Things will show up with an empty Name
History should work entirely differently during an Experiment: If I'm in an Experiment, History requests should be relative to the history of that Experiment, not the Space as a whole.
History shows "undeleted" when it really means "published": That is, the creation record should say "published", but actually says "undeleted".
I can undo a single change to a Thing: From the History View, I should be able to look at a specific Property change, say "undo", and change it back to the value before that change.
I should be able to export / import a Space's *history*: Currently, we only export / import a snapshot of the Space. But it would be even better to be able to export the full history, and recreate that.
I should be able to recover a deleted Thing: Possibly my highest-priority History feature at this point, this is the "undelete" feature.
I should be able to revert a Thing to a previous state: From the History Summary (and possibly while inside View at Time), I should be able to select a Thing and say, "revert to this state".
I should be able to roll back Things to a previous state from a particular date: The notion here is a very specialized but generally useful version of rollback: a function that, given a datetime, and a set of Things, rolls them all back to their state right before that point.
I should be able to see Text diffs showing the changes between two times for a given Thing / Property: The context here is a "Recent Changes" page -- we want to be able to not just list all of the Things that have changed in the past, eg, 30 days, but to specifically show which Properties have changed and highlight the diffs.
I should be able to see the History of a specific Thing: The full History Summary is too long to be easily usable. But I very often only want to look at a specific Thing's History, which is more tractable.
I should be able to see the History of my Space as a "timeline": This needs design, but we should eventually roll the History Summary up even further, so that you start with a timeline, and you choose what date(s) to drill into.
The History Summary should "roll up" the edits to any given Thing: Currently, we spell out every little change in the History, which is completely unwieldy. Instead, I should see a single entry for "Justin created / edited Blah Blah Blah", with a button to drill in for more detail.
Undeletes and rollbacks should roll back the last modification time: At the moment, undelete restores the create time for each Thing, but not the mod time. It would make more sense if it restored both.
When I Export and Import a Space, I should get the full History: Huge change, but we should completely rewrite the usual export/import protocol and format, to be History-based.
When looking at a History Summary entry, I should be able to see the actual change: That is, I should be able to click on one of the Properties that was changed, and see what it was changed to.
When viewing a Space Version, I should see my User Values at that point: Currently, when viewing a Version, I don't see my User Values. I should see the values as of that time.
When Viewing a Space Version, we should show appropriate Conversations: Currently, we simply don't show Conversations when viewing History. We should show the state of the Conversations for the Thing at this Timestamp.

Closed Stories and Issues

Computed Name is not used in History entries: Hopefully not too hard to fix, but will require Future-izing that code.
History for the SI Playtesting Space is OOM'ing: Pretty much all History-related operations in the Playtest Space are causing java.lang.OutOfMemoryError: GC overhead limit exceeded -- the telltale sign that we've been too profligate with RAM, and are now paying the price.
I can *programmatically* list deleted Things: This is an enhancement to I can list all of the deleted Things in this Space -- add a parameter that is a QL expression to apply to each deleted Thing. Everything that passes this filter is listed, and can be undeleted ad-hoc.
I can list all of the deleted Things in this Space: As it says, this is a display (probably a specialized Page) that trawls through the Space and lists all of the deleted Things it finds.
I can undelete *all* of the filtered items: This is a follow-up to I can *programmatically* list deleted Things -- at the bottom of a filtered list of deleted Things, there should be an "Undelete All" button, which will go through that entire list and undelete all of them.
I can undelete an arbitrary Thing by OID: This is the first step towards serious Archive-and-Restore functionality.
I should be able to browse and restore Things that have been deleted from my Space: This needs some design, but in principle it is a pretty straightforward enhancement to the History mechanism.
I should be able to roll back the entire history of my Space: That is, from the History Summary I should be able to say "revert to this point".
I should be able to Undelete a deleted Thing: Now that we have History, there's no excuse not to have this feature front-and-center.
If I Revert a Space and then Extract an App from it, it crashes: Specifically, this is true if you Revert and Extract without reloading in the middle.
Undelete messes up ownership and history: I believe the problem is that Undelete is implemented as "re-add". It needs to fix these fields as it does so.