Skip to content

Releases: flyingrobots/bijou

v5.0.0

16 Apr 17:59
v5.0.0
4fb71bd

Choose a tag to compare

What's Changed

Full Changelog: v4.4.1...v5.0.0

Registry publish summary

  • npm: success

Dist-tag: latest
Version: 5.0.0

If npm failed, fix the publish workflow and re-run this workflow
with workflow_dispatch against the same tag.

v4.4.1

12 Apr 04:05
v4.4.1
6fe0b9d

Choose a tag to compare

What's Changed

Full Changelog: v4.4.0...v4.4.1

Registry publish summary

  • npm: success

Dist-tag: latest
Version: 4.4.1

If npm failed, fix the publish workflow and re-run this workflow
with workflow_dispatch against the same tag.

v4.4.0

11 Apr 03:32
v4.4.0
a77d468

Choose a tag to compare

What's Changed

Full Changelog: v4.3.0...v4.4.0

Registry publish summary

  • npm: success

Dist-tag: latest
Version: 4.4.0

If npm failed, fix the publish workflow and re-run this workflow
with workflow_dispatch against the same tag.

v4.2.0

08 Apr 06:21
v4.2.0
f6178a4

Choose a tag to compare

What's Changed

  • feat(runtime): RE-007 migrate framed shell onto runtime engine seams by @flyingrobots in #60

Full Changelog: v4.1.0...v4.2.0

Registry publish summary

  • npm: success

Dist-tag: latest
Version: 4.2.0

If npm failed, fix the publish workflow and re-run this workflow
with workflow_dispatch against the same tag.

v4.1.0

04 Apr 16:00
v4.1.0
66e376d

Choose a tag to compare

What's Changed

Full Changelog: v4.0.0...v4.1.0

Registry publish summary

  • npm: failure

Dist-tag: latest
Version: 4.1.0

If npm failed, fix the publish workflow and re-run this workflow
with workflow_dispatch against the same tag.

v4.0.0

22 Mar 14:13
v4.0.0
e1ed85a

Choose a tag to compare

Registry publish summary

  • npm: success

Dist-tag: latest
Version: 4.0.0

What's Changed

Full Changelog: v3.1.0...v4.0.0

v3.0.0

12 Mar 04:19
v3.0.0
d605d4e

Choose a tag to compare

Registry publish summary

  • npm: failure

Dist-tag: latest
Version: 3.0.0

If npm failed, re-run only that job from Actions.

What's Changed

Full Changelog: v2.1.0...v3.0.0

Registry publish summary

  • npm: success

Dist-tag: latest
Version: 3.0.0

If npm failed, re-run only that job from Actions.

What's Changed

Full Changelog: v2.1.0...v3.0.0

v2.1.0

09 Mar 00:46
v2.1.0
bfb0f31

Choose a tag to compare

✨ Features

  • Transition shader system expansion (bijou-tui) — Added 9 new built-in transition shaders: radial, diamond, spiral, blinds, curtain, pixelate, typewriter, glitch, and static. Added shader factories for parameterized variants (wipe(direction), radial(originX, originY), blinds(count, direction), etc.) and composable combinators (reverse(), chain(), overlay()). Added frame counter to TransitionCell for temporal effects (glitch, static). Added charRole ('decoration' | 'marker') to TransitionResult so combinators can distinguish ambient noise from positional indicators. All 16 named transitions available via the BuiltinTransition union and TRANSITION_SHADERS registry.

🐛 Fixes

  • Zero-dimension guard in renderTransition — Early-returns when width <= 0 or height <= 0, preventing NaN/Infinity from division-by-zero in shaders called with degenerate dimensions.
  • Removed unused _frameKeys parameter from applyFrameAction — Dead parameter left after palette logic was extracted; removed from signature and all call sites.
  • Explicit charRole: 'decoration' on char-emitting shadersmatrixShader, scrambleShader, pixelate(), glitch(), and tvStatic() now explicitly declare their char overrides as decorations for self-documenting combinator behavior.
  • overlay() combinator JSDoc — Documented OR semantics of showNext (composite reveals if either shader reveals).
  • createEventBus JSDoc — Documented that command rejections are silent by default.
  • Fixed branch name in COMPLETED.md — v2.0.0 entry now correctly references feat/tui-shader-transitions.

Full Changelog: https://github.com/flyingrobots/bijou/blob/main/docs/CHANGELOG.md

Registry publish summary

  • npm: success

Dist-tag: latest
Version: 2.1.0

If npm failed, re-run only that job from Actions.

What's Changed

Full Changelog: v1.8.0...v2.1.0

v1.8.0

08 Mar 17:26
v1.8.0
26342df

Choose a tag to compare

✨ Features

  • Custom fill characters (bijou)box() and headerBox() accept fillChar option for custom padding/fill characters.
  • constrain() component (bijou) — Content truncation with configurable maxWidth, maxHeight, and ellipsis.
  • Note field (bijou)note({ message, title? }) display-only form field, compatible with group()/wizard().
  • Timer / Stopwatch (bijou) — Static timer(ms) and live createTimer() / createStopwatch() with start/pause/resume/stop.
  • Dynamic wizard forms (bijou)WizardStep gains transform and branch for runtime field replacement and conditional step injection.
  • cursorGuard() + withHiddenCursor() (bijou) — Reference-counted cursor visibility guard for nested live components.
  • Panel minimize/maximize/dock (bijou-tui)ctrl+m fold/unfold, ctrl+f maximize/restore, ctrl+shift+arrow reorder panes.
  • Layout presets + session restore (bijou-tui)serializeLayoutState() / restoreLayoutState() with preset helpers.

🐛 Bug Fixes

  • Timer cursor not restored on natural completion
  • Timer double-start leaks interval handle
  • Timer elapsed() returns stale value between ticks
  • Timer pause() / stop() snapshot stale elapsed
  • Timer start() while paused stays frozen
  • Timer onComplete fires before cursor restore
  • constrain() ANSI-safe truncation detection and height+width combo
  • Grid dock operations were no-ops
  • timer() negative ms with showMs

♻️ Refactors

  • Timer state machine: discriminated union replaces 6 loose mutable variables
  • DRY shared ANSI constants, form scroll/navigation, cursor lifecycle via CursorGuard
  • Deprecated detectOutputMode(), detectColorScheme(), isNoColor() no-arg forms
  • Deprecated getTheme(), resolveTheme(), styled(), styledStatus() freestanding functions

🧪 Tests

  • 110 new tests (2022 total across 109 test files)

See the full changelog: https://github.com/flyingrobots/bijou/blob/main/docs/CHANGELOG.md

Registry publish summary

  • npm: success

Dist-tag: latest
Version: 1.8.0

If npm failed, re-run only that job from Actions.

What's Changed

Full Changelog: v1.7.0...v1.8.0

v1.7.0 — Test Fortress

08 Mar 11:21
v1.7.0
34967a6

Choose a tag to compare

✨ Features

  • Multiselect defaultValues (bijou) — New defaultValues option on multiselect() pre-selects items when the form first renders in interactive mode. Items render with filled checkboxes () and can be toggled off with Space.

🧪 Tests

  • Spec-vs-impl corrections — Resolved 3 mismatches between ROADMAP acceptance criteria and actual implementation: mockIO().question() exhaustion returns '' (not throws), CI+TTY detects as 'static' (not 'rich'), Ctrl+C semantics documented per-form.
  • Node.js adapter tests (bijou-node)nodeIO(): write, writeError, readFile, readDir (with trailing / on dirs), joinPath, setInterval firing/dispose. chalkStyle(): bgRgb, bgHex, styled bg field, noColor mode for bg methods.
  • Multiselect defaultValues tests — Pre-selected items render checked, can be toggled off.
  • Property-based fuzz suites (fast-check) — Forms: arbitrary strings, control characters, long input, numeric edge cases, malformed comma lists, rapid repeated calls. Environment detection: 500+ random env×TTY combos, BIJOU_ACCESSIBLE priority invariant, NO_COLOR invariant. DTCG: random theme round-trip, hex preservation, modifier subset preservation, deeply nested reference chains, edge-case hex values.

🔧 Infrastructure

  • Git hooks (repo)scripts/hooks/pre-commit runs lint + lockfile consistency check (npm ls --all). scripts/hooks/pre-push runs the full test suite. Wired via core.hooksPath scripts/hooks. Catches lockfile drift before it reaches CI.
  • CodeRabbit path exclusions (repo).coderabbit.yaml excludes planning/task files from review to reduce false positives.

📝 Documentation

  • ROADMAP — Test coverage spec sections corrected. Xyph migration moved to COMPLETED.

See the full changelog: docs/CHANGELOG.md

Registry publish summary

  • npm: success

Dist-tag: latest
Version: 1.7.0

If npm failed, re-run only that job from Actions.

What's Changed

Full Changelog: v1.6.0...v1.7.0