# Add archive manifest import and folder adapter · dara/icarus

[View on GitCafe](https://git.cafe/dara/icarus/commit/115160f4cf26a100c40c351e13345a15ce57f2ed)

Repository: [dara/icarus](https://git.cafe/dara/icarus)

Visibility: public

Requested revision: 115160f4cf26a100c40c351e13345a15ce57f2ed

Requested commit: 115160f4cf26a100c40c351e13345a15ce57f2ed

Commit: 115160f4cf26a100c40c351e13345a15ce57f2ed

Tree: 806c6088b516c88344695ca4555ea8b19ebaf83c

Author: Dara Adedeji

Committer: Dara Adedeji

## Message

```
Add archive manifest import and folder adapter

Introduce manifest-driven archive import/export support and fix Folder adapter registration.

- Add comprehensive archive/ZIP import handling in StrategyProvider: manifest parsing/validation, zip & legacy imports, folder & strategy mapping, theme profile remapping/restoration, undeclared-file detection, and helper utilities for extracting/writing archive entries. Also add import-from-file-picker and several small robustness fixes (temp dirs, path normalization, error reporting).
- Add FolderAdapter implementation to hive_adapters.dart and centralize adapter registration behind new hive_registration.dart (registerIcarusAdapters / registerIcarusIsolatedAdapters) to avoid duplicate registration; update main.dart to use the new registration entrypoint.
- Handle missing platform directory plugins in image provider by falling back to systemTemp and import flutter/services.dart for MissingPluginException.
- Ensure built-in map theme profiles set createdAt when bootstrapping in map_theme_provider.
- Add new services/archive_manifest.dart (archive manifest model/logic) and update tests to match import behavior.

These changes enable reliable manifest-based library backups, folder-tree exports, and safer adapter registration across platforms.

```

## Parents

- [0410775699f8d98af61d818e1022c78bb7137290](https://git.cafe/dara/icarus/commit/0410775699f8d98af61d818e1022c78bb7137290?format=markdown)

[Source at this commit](https://git.cafe/dara/icarus/tree/115160f4cf26a100c40c351e13345a15ce57f2ed?format=markdown)
