Repository navigation
v0.1.2
Summary
Provenance bug fix, sidebar UX improvements, configurable sidebar width, and a major test coverage expansion. Site footer now displays the user's site version instead of the kitfly engine version. Sidebar folder indicators are larger and animated. Sidebar width is configurable via theme.yaml.
Highlights
Provenance version source (bug fix)
generateProvenance()was reading kitfly's ownVERSIONfile — every site showed the same version- Now resolves version from:
site.yamlversionfield → git tag on HEAD → omit - Added
versionfield tosite.schema.json - Kitfly's engine version is never displayed as site provenance
Sidebar folder indicators (UX)
- Replaced
▸/▾Unicode triangles at0.7emwith›chevron at0.85em - Added
rotate(90deg)CSS transition ondetails[open](150ms ease) - Single character rotates between states — no content swap needed
- CSS-only change, bundles pick up automatically
Configurable sidebar width (feature)
- New
layoutsection intheme.schema.jsonwithsidebarWidthproperty generateThemeCSS()emits--sidebar-widthoverride from theme config- Pattern validation:
^[0-9]+(px|rem|em|%)$ - Default remains
280px, recommended range240px–400px - Propagates to dev server, static builds, and bundles automatically
Test coverage expansion
- 466 → 1,174 tests across 15 test files
- Statement coverage: 56.9% → 68.7%
- Function coverage: 42.3% → 79.6%
- Template coverage: crucible, pipeline, productbook, runbook, servicebook all at 100%
- Bundle coverage: 12.5% → 45.4% (parseArgs, imageMime, rewriteContentLinks, fileToDataUri, inlineLocalImages)
- Theme tests refactored: removed
vi.mock()in favor of real temp directories - All non-null assertion lint warnings eliminated (541 → 0 in changed files)
- Bun/Node dual-runtime test compatibility for v8 coverage
Breaking Changes
None. All additions are backwards-compatible. Sites without a version field gracefully omit version from provenance.
Migration
No migration needed. To use new features:
# site.yaml — add site version
version: "1.0.0"# theme.yaml — customize sidebar width
layout:
sidebarWidth: "320px"