af572d5a8c
v0.8.0: tangle to XDG (~/.local/share/cl-tty/), remove stale memex .lisp files
2026-05-18 13:04:10 -04:00
Hermes Agent
29f99a576d
literate: restructure all 19 org files with per-function blocks and prose
...
Every function, defclass, defstruct, defgeneric, defmethod, defmacro,
defvar, and defparameter in every org file now has its own #+BEGIN_SRC
block with literate prose above it explaining the design reasoning.
Block counts before → after:
package.org: 1 → 7
container-package.org: 1 → 1 (prose expanded)
dirty.org: 4 → 6
render.org: 10 → 25
theme.org: 6 → 19
box-renderable.org: 9 → 29
scrollbox.org: 8 → 26
tabbar.org: 5 → 10
backend-protocol.org: 8 → 66
modern-backend.org: 17 → 53
detection.org: 4 → 6
layout-engine.org: 9 → 36
framebuffer.org: 8 → 37
markdown-renderer.org:13 → 38
dialog.org: 17 → 23 (merged dual structure)
mouse.org: 4 → 25
select.org: 12 → 30
slot.org: 4 → 12
text-input.org: 11 → 53
Total: ~153 blocks → ~502 blocks
Bugs fixed during restructuring:
- render.org: stray π character typo (backenπd → backend)
- modern-backend.org: sgr-attr missing closing paren + #+END_SRC
- detection.org: invalid #\Esc character reference
- select.org: extra closing paren in select-visible-options
All 13 test suites pass at 100%.
2026-05-12 18:55:07 +00:00
Hermes
abf8e5cdeb
Backport round-2 fixes to org source files
...
org/text-input.org: remove (declare (ignore w)) from textarea render;
add truncation to text-input render (subseq display 0 w)
org/mouse.org: hit-test now uses component-layout-node and recurses
into children for deepest-match hit testing
org/select.org: render reads layout-node-x/y instead of hardcoded (0,0)
org/scrollbox-tabbar.org: tabbar render reads layout-node-x/y
instead of hardcoded (0,0); x-pos starts at x offset
All 4 org files tangled clean. 392 tests pass.
2026-05-12 01:00:17 +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
e96c338a57
v0.7.0: Select dropdown with fuzzy filter
...
Select widget: list of options with keyboard navigation (up/down/enter/esc,
ctrl+n/p), case-insensitive substring filter with character-set Jaccard
fuzzy fallback, category headers, viewport culling, on-select callback.
Fixed from subagent review:
- Category filter return-from bug: categories kept in filtered set
- Dead trigram code removed (string-trigrams, trigram-score)
- Exports cleaned up (removed unused trigram exports)
- Character-set Jaccard replaces trigrams (better for short strings)
25 select tests, 100% GREEN.
196 total (27 backend + 58 box + 60 input + 26 scrollbox/tabbar + 25 select)
2026-05-11 17:36:00 +00:00