Skip to content

Releases: drawmeanelephant/rotkeeper

Rotkeeper v0.8.0 — Phase 6 completion, theme registry, DaisyUI trio, identity primitives

Choose a tag to compare

@drawmeanelephant drawmeanelephant released this 28 Aug 15:55
8c97b02

v0.8.0 completes Phase 6 of the Oliver integration and ships the theme system overhaul: a config-driven theme registry, the DaisyUI prototype trio with per-page palette switching, shared identity primitives, and the docs trio.

  • Phase 6 completion (Oliver): pin moved to 06dd640 (wrap fix #115); the adapter is now direct (no yq/gawk fallbacks) and feeds version/tags/asset_meta slots into the wrap dialect for meta-json interpolation.
  • Theme registry + config nav (#252): per-site theme_registry.default with a safe fallback on dangling defaults; S7-asserted precedence (frontmatter > config > fallback) on all three layouts; config-driven $navigation$ hook with the first real nav in a theme.
  • DaisyUI trio + palette switching (#248/#249/#250/#307): vendored daisyUI 5.7.2 theme with a byte-identical zero-dependency vanilla twin, a component map, and palette: frontmatter → data-theme for all 35 vendored names. Decision gate 2026-08-28 keeps the pair prototype — see daisyui-map.md for the measured verdict and reopen conditions.
  • Shared identity primitives (#251): rk-identity.css — dividers, lore blocks, and the icon set († ⚗ 🕯️ 💀 🦇 ✝ ☠) as token-driven primitives; necropolis and the spooky family refactored onto it.
  • UX sweep 2 (#290): bare echo diagnostics now survive quiet mode, init/scan end with visible MARKER summaries, and render failures carry a structured channel with the XHTML fail-closed hint.
  • Docs trio: theme-creation guide (#259), completed theme-eval fixture (#261), and the portable doc-site guide (#263) — anyone who runs the toolchain can publish the docs anywhere.
  • Six correctness bugs (#220), sterile layout parity (#221), concurrency/atomicity fixes (#222), and the consolidation refactors (#223/#224) all land in this release.

The canonical single-tier framework distribution is rotkeeper-0.8.0.zip — verified (spine, allowlist, no forbidden artifacts) and replayed clean (preflight → init → render → scan → pack) from the shipped artifact.

Rotkeeper v0.7.0 — Cooklang, XHTML profile, download-first Oliver install

Choose a tag to compare

@drawmeanelephant drawmeanelephant released this 15 Aug 16:35
1d38987

v0.7.0 adds first-class Cooklang support, an opt-in XHTML output profile, and installs the Oliver renderer download-first from upstream's rolling builds release (checksum + pinned-commit verified).

  • Cooklang (Recipe Grimoire): input_format: cooklang in bones/config/rotkeeper.yaml or .cook source files always render via Oliver --from cooklang regardless of the config default; recipes live under home/content/recipes/.
  • XHTML output profile: opt-in per page (render_profile: xhtml frontmatter) or per site (render_profile in config, default html); raw HTML fails closed under XHTML (error.RawHtmlNotXmlWellFormed); ships the XHTML theme wrapper bones/templates/theme-spooky-dark-xhtml.html; harness asserts xmllint well-formedness.
  • Download-first Oliver install: scripts/setup.sh fetches oliver-<os>-<arch> (linux/macos × x86_64/aarch64) from upstream's rolling builds release, verifies it against the published sha256sums.txt, and asserts oliver --version reports exactly the pinned commit (OLIVER_PIN = 6edb520c…) before installing to /usr/local/bin/oliver; the Zig 0.16.0 source build of the same pin remains the fallback — no Zig toolchain needed on the happy path.
  • De-Jules scrub: setup-jules.sh renamed to setup.sh; agent branding removed from scripts, docs, and CI.
  • Contract/harness updates: real-Oliver CommonMark contract corpus runs on every layout pass; XHTML fail-closed + xmllint gates; footnote/task-list literal contract verified unchanged against the new pin.

Validation: full harness green on crypt/busy/sterile with RK_STRICT=1 against the real pinned binary (contract corpus, XHTML xmllint, fail-closed raw HTML); extract-and-replay quickstart (preflight → init → render → scan → pack) passes from the shipped zip; CI green with the download-first install on ubuntu (linux-x86_64) and macOS (aarch64).

Artifacts: rotkeeper-0.7.0.zip — canonical framework distribution (dispatcher, bones system, templates, configuration, project docs) with generated release-manifest.txt.

Rotkeeper v0.6.0 — textile input, archive integrity, pinned Oliver renderer

Choose a tag to compare

@drawmeanelephant drawmeanelephant released this 13 Aug 17:05

v0.6.0 hardens the test harness, makes text rendering configurable, pins the Oliver renderer, and fixes archive naming collisions.

  • Configurable input format: input_format: markdown|textile in bones/config/rotkeeper.yaml propagates through env and the adapter; preflight smoke and the harness honor it. Textile markup renders via Oliver --from textile; internal .textile links rewrite to .html during the transformation pass. Source discovery remains *.md-bound.
  • Oliver pinned: scripts/setup-jules.sh now does a full clone + git checkout of OLIVER_PIN (22b3c7795adb1caac160b3bc863980d35bbec379) and verifies with rev-parse; CI inherits the pin via the setup script. Shallow clones cannot satisfy the pin.
  • Archive collision fix: tomb archives are now tomb-<ts>-NNNN.tar.gz (per-process random suffix), eliminating same-second name collisions; post-pack stdout prints a tomb summary line (name, sha256:16, file count, size). Tomb versioning policy (append-only, immutable, never pruned) documented in rotkeeper-schemas.md.
  • Harness expansion: pack-integrity assertions (archive existence, gzip health, tomb.json metadata, root-relative prefixes — exits 116/117/118/139); release-zip content audit (framework spine, rotkeeper/-only roots, forbidden trees/artifacts, no *.tar* leftovers — 148–152); --dry-run non-mutation (153); stale-output pruning (154); tomb-naming uniqueness (155); textile assertions (144–147). New-exit-code set verified free.
  • Bug fixed: rc-scan.sh wrote a per-run log file even in --dry-run; log creation is now gated.
  • Release affordances: .editorconfig, PR/issue templates added; .editorconfig admitted to the release root allowlist; release-day checklist (§8) added to workflow.md; todo ledger reconciled.

Independent external QA: RK_STRICT=1 suite with real Oliver across all three layouts, release-zip audit, and dry-run non-mutation ran twice against release/0.6 @ 28961bd — PASS 100% green, workspace pristine after testing.

Full harness verified green on crypt/busy/sterile layouts (hermetic + real Oliver) on macOS.

Artifacts: rotkeeper-0.6.0.zip — canonical framework distribution (dispatcher, bones system, templates, configuration, project docs) with generated release-manifest.txt.

Rotkeeper v0.5.3 — Oliver renderer swap and CI hardening

Choose a tag to compare

@drawmeanelephant drawmeanelephant released this 13 Aug 04:22
f94bff0

v0.5.3 replaces the Apex renderer with Oliver and hardens the CI + release plumbing.

  • Oliver renderer swap: rc-apex-adapter.shrc-oliver-adapter.sh, RK_OLIVER_BIN replaces RK_APEX_BIN, contract moved to oliver-contract.md. Adapter strips YAML frontmatter and drives oliver render --from markdown (stdin → stdout).
  • GFM pipe tables flipped to supported: alignment colons and escaped pipes asserted by hermetic oliver-contract fixtures; task lists/footnotes remain CommonMark-literal.
  • Preflight now gates on a live Oliver smoke render (no version range — Oliver's CLI is provisional); scripts/setup-jules.sh builds Oliver from source with Zig 0.16.
  • Release hardening: root-entry allowlist now enforced for directories as well as files (a stray root directory previously leaked into the zip); output exclusion is layout-derived (covers sterile dist/).
  • CI: macOS added to the matrix, RK_STRICT=1 fails loudly when real-Oliver passes are skipped, test job aggregator satisfies the required status check.

Full harness verified green on crypt/busy/sterile layouts with real Oliver on both macOS and Ubuntu runners.

Artifacts: rotkeeper-0.5.3.zip — canonical framework distribution (dispatcher, bones system, templates, configuration, project docs) with generated release-manifest.txt.

v0.5.2 — Stabilization Slice

Choose a tag to compare

@drawmeanelephant drawmeanelephant released this 12 Aug 22:11
  • Added the preflight dispatcher command for single-pass Apex binary discovery & diagnostics.
  • Added checked-in hermetic smoke fixture (bones/scripts/tests/fixtures/apex-smoke/) with golden output validation across crypt, busy, and sterile layouts.
  • Made release archives deterministic with explicit root allowlist, framework manifest (release-manifest.txt), and credential guards.
  • Repaired DIP workflow & refreshed matrix coverage (42 path-independent rows).
  • Fixed macOS realpath portability in rc-apex-adapter.sh via rk_canonical_path.
  • Updated documentation: complete README overhaul and new workflow.md guide.

Rotkeeper v0.5.1

Choose a tag to compare

@drawmeanelephant drawmeanelephant released this 26 Jul 13:06
169872a

Apex renderer hardening release. Fixes literal-safe template interpolation, metadata escaping, .soul.md parsing, Apex stderr handling, and manifest consistency. Full crypt/busy/sterile test matrix passes.

What's Changed

Full Changelog: v0.5.0...v0.5.1

Rotkeeper v0.5.0

Choose a tag to compare

@drawmeanelephant drawmeanelephant released this 23 Jul 20:19
a6bead5

[0.5.0] - 2026-07-23

  • Established native Apex (apex) HTML renderer as default engine and removed Pandoc runtime requirement.
  • Formalized source_markdown export contract in rc-pack.sh for decentralized payload packaging.
  • Added dispatcher link audit tool (rc-links.sh / ./rotkeeper.sh links) for link checking and local asset verification with angle-bracket compatibility.
  • Added persistent Spooky theme (theme-spooky-dark.html, theme-spooky-light.html), offline spooky opt-in theme, and brutalist log styling base.
  • Added coastal radio dogfood corpus and hardened authoring traversal and status reporting.
  • Made release distribution archive publication atomic (rotkeeper-v0.5.0.zip).
  • Refreshed DIP documentation matrix and removed obsolete tombs and retired ritual references.

Rotkeeper v0.4.1

Choose a tag to compare

@drawmeanelephant drawmeanelephant released this 22 Jul 18:45

Rotkeeper v0.4.1

This release seals the release-plumbing and stabilization checkpoint.

Highlights

  • Version-aware microbump flow through bash rotkeeper.sh bump.
  • Synchronized script version markers and parameterized release tests.
  • macOS-safe integration-test and release cleanup paths.
  • Idempotent DIP stitching, accurate matrix status, and evidence-gated obsolete handling.
  • Canonical single-archive packaging.

Validation

  • Full crypt/busy/sterile integration matrix passed.
  • Removed-command regression checks passed.
  • Canonical archive integrity verified.

Asset: rotkeeper-0.4.1.zip

Rotkeeper v0.3.1

Choose a tag to compare

@drawmeanelephant drawmeanelephant released this 16 Jun 13:54

Minor release: Framework stabilization and documentation scrub

💀 Rotkeeper v0.2.4 – Ritual Bookbinding Edition

Choose a tag to compare

@drawmeanelephant drawmeanelephant released this 02 Jun 00:28

This release overhauls the documentation rituals, expands path awareness, and stabilizes the docbook collapse pipeline. It introduces a unified book command, collapses Markdown into GPT-readable YAML, and consolidates environment logic across the toolchain.


🔧 Added

  • rc-book.sh
    Multi-mode docbinding script (--scriptbook, --docbook, --webbook, --collapse, --all)
  • rc-env.sh
    Shared path config for bones/, output/, home/content/ — sourced by all rc-*.sh scripts
  • rotkeeper-docbook-clean.md
    Stripped variant of the docbook, ready for YAML collapse and GPT consumption
  • collapsed-content.yaml
    Clean, structured output of all known doc assets (from --collapse mode)
  • rc-utils.sh
    Generic helpers (parse_flags, require_env_vars, init_log, etc.)

✂️ Removed / Deprecated

  • Legacy bookbinding scripts (rc-docbook.sh, rc-webbook.sh, rc-scriptbook.sh)
  • Inline changelog logic from rc-utils.sh (now owned by rc-bless.sh)

📖 Documentation Overhaul

  • All active rituals now have matching .md documentation under home/content/docs/bones/scripts/
  • CLI flags, workflows, and caveats freshly embalmed
  • Limericks preserved for structural integrity

🪦 Notes

  • Doc outputs now include both frontmatter-rich and frontmatter-free variants
  • collapse logic includes fallback title detection
  • Output markdown no longer breaks on malformed YAML
  • This is a stable pre-release — additional polish expected in v0.2.5

May it rot gracefully. 🕯️

20250601_1221_Doomcute Infographic Fun_simple_compose_01jwp4q097f96r8bddynxzsyjn (1)