ArchiveMirror

works.iterative.claude.zio.log.ArchiveMirror
class ArchiveMirror(config: ArchiveConfig)

Copies a resolved vendor session tree into the installation's kept directory. Each file is planned by size, then copied, extended in place, refreshed, or skipped; a per-file failure is recorded rather than aborting the run. Symlinks are never followed, and the kept directories are restricted to the owner.

The kept directory is claimed for its installation before anything is kept there: its key is lossy, so a directory another installation holds is refused with ArchiveError.InstallationKeyTaken and the two are never merged.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Value members

Concrete methods

def mirror(record: SessionRecord, takenAt: Instant): Either[ArchiveError, MirrorReport]

Keeps the record's tree, answering what happened per file, and writes the custody facts the first time the transcript is kept. Refuses a kept directory another installation holds, and then keeps nothing. Synchronous filesystem work; the caller wraps it in an effect.

Keeps the record's tree, answering what happened per file, and writes the custody facts the first time the transcript is kept. Refuses a kept directory another installation holds, and then keeps nothing. Synchronous filesystem work; the caller wraps it in an effect.

Value parameters

record

a record resolved under the vendor tree

takenAt

the time recorded as custody's first taking, if this keep is the first

Attributes