Skip to content

v49

Choose a tag to compare

@dave-hudson dave-hudson released this 07 Jun 16:02

New features:

  • The GUI is now in src/desktop, not src/humbug. This allows for other (future) frontends. This means you must use python -m desktop to launch the application now, not python -m humbug.
  • The filesystem and editor tools now have the ability for an AI to use Menai programs to modify files/editor buffers.
  • Markdown rendering (including in AI conversations) now supports blockquotes.
  • When delegating a task to an AI, if the AI model is available from more than one backend provider, the tool now tells the AI and asks it to select the correct one.
  • Google Gemini models now show their reasoning.
  • Added Claude Opus 4.8 and removed 4.6.
  • Added support for strikethrough in the markdown parser.
  • Added a new DOCX AST and code to read/write DOCX format using it.
  • Added a new HTML DOM and code to read/write HTML using it.
  • Added a convert_document CLI tool to convert docs between markdown, DOCX, and HTML.
  • Added a document converter AI tool. Initially this can convert between markdown, DOCX, and HTML.
  • Replaced the app icon!

Bug fixes:

  • Resolved a problem that could leave the cursor in the wrong column after the UI resized a terminal.
  • On moving tabs between columns we could end up placing the tab in the wrong position in the new column.
  • System shell and AI tool operations could end up leaving ephemeral tabs as ephemeral instead of making them permanent.
  • If a task was delegated to an AI that generated an HTTP error, the error wasn't propagated to the caller.
  • Fixed a problem where no syntax highlighting was applied for YAML, TOML, bash, PHP and Ruby files.
  • Resolved a problem where new tabs might not have the correct focus.
  • Fixed a regression related to file attachments in conversations.
  • Improved text extraction from PDF files.
  • The tab label for "File Save As" did not automatically update to reflect the new name.
  • If a file is moved and had an open tab then the new location is picked up and the tab is updated to the new path.
  • Markdown indentation for embedded code blocks could end up incorrect.
  • When applying diffs via the filesystem or an editor buffer, if any hunk fails to apply then none apply. Updated the error responses to make this clear so the AI never assumes some did apply.
  • Removed the ability to pass "current" as the session ID to be shared with a child AI. Passing the history became very confusing as the child didn't understand what it was being presented.

Internal structure changes:

  • Moved the core AI tools into separate top-level modules so the dependency management is clearer.
  • Switched GUI-interacting AI tools to use a new context registry enabling other front ends in the future.
  • Separated out more functionality from the tab manager (was the column manager) into the tabs.
  • Created a clean separation of sidebar functionality and added a new sidebar manager.
  • Hoisted all tabs and sidebars to the top of the src/desktop directory.
  • Added pytest tests for the Markdown syntax highlighter.
  • Added a new abstract document IR.