After a couple of weeks of fairly significant development I figured it was time to release v38.
Conversations in the git repo
Since I started building Humbug, I've been talking with people about the value of capturing design discussions alongside source code. Today I finally decided to publish a lot of the discussions I've had when building Humbug. They're in the git repo.
The idea is to showcase some of what Humbug was designed to do and the way I've used AI to help build things.
Humbug v38
New features:
- Added an XML syntax highlighter.
- Added a vLLM backend and gemma3:27b model to go with it.
- Updated the terminal AI tool
get_statusoperation to return the operating system and shell type. Updated the tool description to avoid leading to any assumption of running on a Unix-like system. - Added a system prompt to provide initial guidance to all LLMs when starting conversations.
- Added a
get_system_infooperation to the system AI tool. This provides system and mindspace details. - Added association lists (alists) to AIFPL to provide very efficient key/value lookup operations.
- Improved AIFPL performance by about 40%
- Added blockquote support to the dmarkdown Markdown parser.
- Added the ability for the code blocks parsed by the Markdown parser to pass this information directly to the syntax highlighter to avoid parsing twice.
- Added support for nested code blocks inside Markdown list elements.
- Added a preview tab context menu.
- Added new user settings to provide a global enable/disable for filesystem read access outside the current mindspace. When enabled, also added allowlist and denylist configurations to control what can be accessed.
- If you load Humbug and have no AI API keys set up then the welcome page will let you know and guide you to the user "Preferences" dialog.
Bug fixes:
- Fixed some lexing problems in the HTML syntax highlighter.
- Resolved a problem where Windows anti-malware scanners could cause conversation transcript files to not write correctly.
- Correctly handle character and string literal formats in the C syntax highlighter.
- Handle missing "override" and "final" keywords, and additional string formats for the C++ syntax highlighter.
- Resolved a problem with deleting message sections when a queued user message was submitted.
- Fixed some lexing problems in the JavaScript and TypeScript syntax highlighters.
- Fixed AIFPL so '+' can be used for positive numbers.
- Fixed a syntax highlighting problem with detecting element tokens in the C and C++ syntax highlighters.
- Resolve problems with complex nesting of block-level elements in Markdown.
- Added protection against corrupted user and mindspace settings files.
Internal structure changes:
- Added pytest tests for the HTML syntax highlighter.
- Added pytest tests for the C and C++ syntax highlighters.
- Added pytest tests for the JavaScript and TypeScript syntax highlighters.
- Increased test coverage for the Lua syntax highlighter to 100%
- Added pytest tests for the AIFPL syntax highlighter.