IB-WP-0014: archive-list, restore, retention annotation, docs (T03-T05)

Round out IB-WP-0014 with the remaining archive operations and docs.

- restore_archive() and `infospace-bench restore <pkg> --target <dir>` round-trip
  a finalized package's bytes back to disk. Refuses to overwrite a non-empty
  target unless --force. --from <infospace-root> resolves the store location.
- archive-list CLI with --with-retention flag; annotate_retention() opens the
  per-infospace registry and joins each record with its current retention
  state (effective class, expires, holds, eligibility).
- docs/archive-integration.md covers when to archive, the include set,
  retention classes, storage layout, credentials policy, and the explicit
  non-goal that S3/git backends live in artifact-store.
- SCOPE.md cross-links the new doc.
- Workplan flipped to status: done. Full pytest suite: 72 passed.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-17 11:46:23 +02:00
parent e343443d77
commit ddefd69f71
8 changed files with 636 additions and 2 deletions

View File

@@ -1,4 +1,11 @@
from .archive import ArchiveRecord, archive_infospace, list_archives
from .archive import (
ArchiveRecord,
RestoredArchive,
annotate_retention,
archive_infospace,
list_archives,
restore_archive,
)
from .errors import InfospaceError
from .evaluation import EntityEvaluation, EvaluationSnapshot, MetricValue, ScoreEntry
from .engine import (
@@ -43,6 +50,7 @@ from .workflow import load_workflows, plan_workflow, run_workflow
__all__ = [
"ArchiveRecord",
"DisciplineBinding",
"RestoredArchive",
"EntityEvaluation",
"EvaluationSnapshot",
"Infospace",
@@ -61,6 +69,7 @@ __all__ = [
"TopicConfig",
"ViabilityThreshold",
"add_artifact",
"annotate_retention",
"append_to_history",
"archive_infospace",
"create_infospace",
@@ -79,6 +88,7 @@ __all__ = [
"read_snapshot",
"record_check_results",
"register_artifact",
"restore_archive",
"load_workflows",
"plan_workflow",
"run_workflow",