Excuse me for my lengthy answer, I’ll try to answer all your concerns and I’m hoping to get the idea across..
Ok, I feel we’re talking here (someone at least read the code), but obviously not the RTFM part which explicitly explains what it is and what it isn’t.
You’re right about the mechanism -that’s exactly what it does, no magic (it’s open and readable).
On “snapshot” being the wrong word:
I get the concern, but I’d push back a bit. “Snapshot” isn’t owned by btrfs/ZFS — it’s the general term for “a record of state at a point in time,” and that’s precisely what these files are: a snapshot of the filesystem’s metadata state (names + mtimes) at the moment the scan ran. btrfs snapshots are one implementation of that concept at the block layer; AFST’s are another at the metadata layer: same word, different layer, different purpose.
It’s the same reason “backup” isn’t reserved for one specific tool or technique either; there are backups of all kinds, and snapshots are just as broad category.
If someone sees “snapshot” and expects CoW/mountable/instant-rollback semantics, that’s on the docs to prevent, not on them to assume.
As for “File History” as an alternative: the “history” part does exist in the sense that these snapshots are timestamped and traceable over time, so in that broader sense it is a kind of history. The content of any individual snapshot file is a pure state capture, though, but the diff result and the resulting copy list are a different thing, and those are closer to a history of changes.
So if I had to be nitpicking exact about it: these files are snapshots, and together they form a history of changes. Both words are correct, they just describe different layers of the same data.
One more relevant detail:
the script does have cleanup code for snapshots, but it’s intentionally disabled by default, so users can review exactly what was copied and when. In effect, the accumulated snapshots end up functioning as a log of operations - a history of sorts - but that’s a side effect, not the point of the file.
In normal operation, I don’t rely on old snapshots, because I want to stay on top of all the changes in the tree, not just through AFST.