Skip to content

v4.8.0

Choose a tag to compare

@rodrigoslayertech rodrigoslayertech released this 02 Jul 23:28
· 88 commits to main since this release
v4.8.0

Focus: Live Terminal Blocks — embed runnable, interactive terminals in documentation pages, driven by project-provided engines.

Changes

  • ✨ Added <d-block-terminal> — a live xterm.js terminal block driven by consumer engines (src/terminals/**/*.js), with streaming ANSI output, Run/Replay/Stop controls, status phases and lazy runtime loading (nothing heavy loads until the first Run)
  • ✨ Added the terminal engine contract: async ({ onOutput, onError, onStatus }) => ({ run, source?, input?, stop?, dispose? }) + meta = { label, language } — cheap factories run at mount so the source panel and Stop wiring exist before the first run
  • ⌨️ Added interactive input: when the engine implements input(data), keyboard (and terminal mouse-tracking sequences) are forwarded byte-for-byte with click-to-focus capture, a "Click to interact" hint and Ctrl+C mapped to stop()
  • 🔗 Added deep-linkable command tabs: the selected tab persists as a ?t<n> query param — reloads and shared links restore the tab and scroll the block into view
  • 📄 Added a source panel + GitHub action backed by the engine's source(command) hook
  • 🧪 Added the dependency-free demo-echo engine (including an interactive read command) and the /content/blocks/terminals manual pages (en-US + pt-BR)
  • 🛠️ Fixed <details> tag rendering in Markdown sections
  • 📚 Updated README with the Terminal Blocks authoring guide and engine contract notes
  • ✅ Validated with 201 passing tests and a scaffold build