Releases: queelius/longecho
longecho 0.4.0
Highlights
Site composition. longecho archives can now include source-level interactive viewers (e.g., a ctk conversation browser, a chartfold dashboard) and the archive SFA links to them. Build at any level: child sites compose into a parent SFA via relative links. The fractal/self-similar structure lets you assemble archives of archives without any tool needing to know about the others.
Foreign site overwrite protection. longecho build now reads the output directory's README.md frontmatter to detect tool-generated sites and refuses to overwrite them. New --force flag to bypass when intended. Protects ctk, chartfold, and other tool-generated viewers from accidental clobbering.
Root finally rendered. The archive root's own README content, data files, and metadata are now visible on the home page of the generated SFA. Previously, the root's data was invisible because the home view only rendered children. Home view and detail view now share a single rendering path: every view in the SFA is the detail view of some source.
Added
- Foreign site overwrite protection with
--forceflag - Root source rendered as a full detail view on the home page
- Source-level site linking ("Open interactive viewer" cards)
_get_data_fileswalks recursively, scoping data files to their owning source
Changed (breaking)
- SFA JSON: per-source
formatskey renamed todurable_formats Readmedataclass no longer carries abodyfield
Changed
--depthhelp text clarified to specify filesystem depth- README and CLAUDE.md documentation: clarified
contentsfield semantics, ecosystem table, and architecture notes
Fixed
- Root archive's data files and README content were never displayed in the SFA
_get_data_filespreviously only globbed top-level files, missing nested ones
Stats
- 143 tests passing (up from 124 at v0.3.0)
- 93% coverage
- mypy clean, ruff clean
See CHANGELOG.md for full details.