Hermes
d63ba69fb7
v1.0.0 review fixes: dialog, textarea, scrollbox, demo, ASDF, layout
...
Fixes from subagent code review (15 findings):
CRITICAL runtime bugs:
- dialog.lisp: backend-write calls -> draw-rect/draw-text (wrong arg count)
- dialog.lisp: removed undefined render-component call
- dialog.lisp: toast render backend-write -> draw-text
MAJOR data loss / silent failures:
- textarea.lisp: undo overflow now drops oldest entry instead of wiping stack
- scrollbox.lisp: :background-element -> :bright-black (theme keyword never resolved)
ASDF completeness:
- modern-tests.lisp wired as component and test-op suite
- layout tests added to test-op suite list
- markdown suite lookup now uses keyword (was looking up wrong string)
- test runner updated to match
API cleanup:
- container-package: removed duplicate render export
- select-package: removed duplicate render export
- markdown.lisp: #\Escape -> #\Esc for consistency
- textarea.lisp: removed duplicate %split-string defn
Demo robustness:
- Added unwind-protect for guaranteed terminal cleanup
- Uses make-modern-backend constructor
- Uses set-raw-mode/restore-terminal-state
Layout:
- normalize-box handles partial padding specs (was returning all zeros)
2026-05-11 21:50:53 +00:00
Hermes
811d51a4f2
Rename cl-tui -> cl-tty, v0.9.0: Dialog System + Toast
...
Rename: cl-tty avoids naming collision with Quicklisp's cl-tui (naryl/cl-tui,
a cl-charms-based ncurses library). Our project is pure escape-sequence CL.
v0.9.0 adds:
- Dialog base class: modal overlay with backdrop, centered panel, size
variants (:small/:medium/:large), stack-based management
- Dialog subclasses: alert, confirm, select-dialog, prompt-dialog
- Toast notifications: transient, top-right corner, auto-dismiss,
colored variants (info/success/warning/error)
- 78 tests total, 100% passing
ASDF: read-time package references (+fiveam:+) replaced with
find-symbol so .asd loads without FiveAM pre-loaded
2026-05-11 19:55:37 +00:00
Hermes
2231fb6647
v0.0.3: layout engine — pure CL Flexbox solver, 35/35 tests GREEN
...
Fixes during debugging:
- Variable scope: loop's closing parens closed the let* prematurely,
making children/is-row/pr/pb undefined in own-size calculation
- gap NIL bug: make-layout-node passed :gap nil (from &key default)
to make-instance, overriding :initform 0 → (* nil ...) crash
- Child order: push (LIFO) in add-child reversed children order;
changed to nconc (FIFO), removed the compensating reverse
- Fixed distribute-sizes to base all children from their fixed size
then apply grow/shrink on top, instead of treating fixed-size
children as non-participating
2026-05-11 13:39:26 +00:00