Released 30 Apr 2026. Build number is 797.
Minor changes not necessarily warranting explicit mention in an aTbRef note:
- Action Code:
- The List.size() operator failed to count empty elements in lists.
- Code colouring: when editing code, var declarations such as
var:number x=5;are coloured green. However, if the type of the variable was string, the word 'string' was coloured blue because there is also a string() operator. Variables of type 'date' and 'list' suffered a related issue. This has been corrected. - Code colouring: in code fields, illegal
varexpressions are no longer highlighted as keywords. For example, 'var:tensor' is ignored because 'tensor' is not a valid data type. - Code colouring: in code fields, the "if" in operators such as sum_if() is no longer coloured as if it were an if() statement.
- Compound designators that refer to notes which have parentheses in their names are now handled correctly. For example,
$Color(nextSibling(/Romans/Cato (the younger)))is now handled correctly. - When evaluating an expression with a conditional that lacks an else clause, Tinderbox parsed the token following the if statement incorrectly.
- Evaluating $DisplayName could easily deadlock or crash if the DisplayExpression referred to $DisplayName. Tinderbox catches this in the most common case:
$DisplayName(this). There remain problems when referring to the $DisplayName of other notes if those notes themselves refer back to this note's $DisplayName, but that is likely to be less common. - Some actions, like
.substr(), anticipate numeric arguments. In the past, these were unable to extract their numeric values from list variables. These operators should now work as expected. -
.extract()could crash if the text string could not be represented in utf8 or if the pattern was invalid regex. - collect(…) allows more indirection. For example,
collect(siblings($MyString),$Name)is now supported. (Issue #4543 fixed)
- AI/Natural Language Processing:
- Revised the AI Built-In Hints text as well as the tool descriptions visible to AI clients in order to provide more useful information to AI users.
- Improved MCP detection that an instance of Tinderbox is already running, and improved error messages in MCP-tinderbox logs.
- MCP could disconnect if its output pipe filled up. That will not happen again.
- MCP: Tinderbox now adopts protocol version 2025-03-26 rather than 2024-11-05.
- Attribute Browser view:
- Standard system colours (for light or dark modes) are used for drawing the Attribute Browser; the view should behave better in Dark Mode.
- The view maintains an index of its rows, significantly improving performance.
- Selecting notes for the browser is once again performed in the background.
- When using the Font Picker in attribute browser, the picker’s font size reflects the actual size in use.
- The text field in Attribute Browser is better aligned with the URL button.
- When using tabs to switch from Attribute Browser to a conventional view, if the slider position is moved in the tab switch, the clicked tab could be converted to become an attribute browser. This should no longer occur.
- The TbxBinPopover for attribute browser now adjusts its height to avoid obscuring more of the window than is necessary.
- Command Bar:
- The text preview used by the Command Bar now respects $TextBackgroundColor.
- Export:
- Revisions to HTML Export to clean up handling of unicode characters in templates. With this, Tinderbox bids farewell to class UnicodeString, a compatibility shim that from 2009-2026 helped us navigate from MacRoman to utf-8.
- Corrected a spurious space emitted after links when exporting Markdown.
- Corrected an additional export problem when using an $HTMLPreviewCommand.
- Markdown: exported links are now %encoded, as Markdown requires.
- ^file^ now exports only the filename and extension of the exported file. Formerly is exported the entire path.
- Find:
- The Find Bar now reports context for text-based searches as well as regular expression searches. Previously only regex and expression searches showed context.
- Mistakes in the FindBar's handling of prototype search have been corrected.
- The FindBar's prototype menu is now rebuilt dynamically and should remain up to date.
- The text preview used by Find results elsewhere now respects $TextBackgroundColor.
- Help:
- Tinderbox Help indexing should now be working properly. This has never been entirely satisfactory.
- Import:
- Exploder: now industrial strength. Much faster and far more reliable when exploding thousands of notes.
- Inspector:
- Corrected the vertical constraint for the Action label in the Links pane of the Document Inspector.
- The Quickstamp Inspector suffered from a layout issue when opened from the Command Bar.
- Added optional 'target' argument for bargraph() and plot() container plot types.
- Map view:
- Dragging a locked note or adornment outside the map pane had the effect of dragging it despite the lock.
- Links did not always refresh after link creation or changes to map scale.
- View refreshes should now be significantly faster in very large maps.
- In map view with sufficiently large and complex maps, links could be drawn in the wrong position after vigorous scrolling.
- The View Background Editor has been adjusted to be easier to understand. In addition, controls that are only pertinent to maps are hidden in other views (sued by Outline, Chart, Treemap.
- Miscellaneous:
- Corrected a crash in MCP after closing a document.
- Problems in JSON parsing of strings ending in escaped quotation marks have been cured.
- Rewrote the typeahead mechanism in views in order to provide better support for non-English note names.
- The Command Bar's knowledge of aTbRef has been updated.
- Extensive work revising the plumbing that connects different views to the text pane and the rest of the main window.
- TbxSyntaxHighlighter failed to recognise matches where the regex metacharacter $ should match the end of the text.
- TbxSyntaxHighlighter revised to eliminate some edge cases and for tidiness.
- Tinderbox documents with active actions now autosave less frequently when Tinderbox is in the background.
- Fixed a deadlock between computing $TextMarkdown in the background and the progress indicator.
- Prevented a deadlock that could occur when hoisting a view while editing the name of a note.
- Rewrote PropertyList to move responsibility for concurrency safety from Node to PropertyList. This simplifies Node.
- Simplified the communication channel between the text pane and the view pane.
- Refactored paste and inter-window dragging to avoid code duplication.
- Extensive refactoring to improve MultipleMoveAction and to prefer MapPoint to SPoint in NodePosition.
- Revised Undo to use a TbxUndoContext.
- Addressed a reported crash when drawing image thumbnails, apparently caused by undocumented complications in threading in macOS imageAt:.
- The Badge Picker no longer clears the current badge on opening.
- Outline view:
- Outline Layout has been revised for correctness at small text sizes, and to remove unnecessary complexity.
- In outlines, notes with $NameAlignment of
centeredwere drawn (as they should be) left-aligned, but when editing the name they were centred. All Outline item titles, other than separators, are always left-aligned.
- Text pane:
- The preview pane no longer caches images, and should now reflect any changes in externally-edited images.
- Fixed extraneous error beeps when moving the pane splitter in outline view, when the text pane had the focus.
- Revised Preview navigation policy to open links in the default browser but not to open iFrames in the browser.
- In circumstances not well understood, a series of copy/pastes in the text pane could confuse the text pane into thinking some paragraphs were right-to-left when they were not.
- The text pane was ignoring strikethrough.
- Windows:
- The Window ▸ Text Only and Window ▸ View Only commands remember the previous position of the pane splitter. Invoking them a second time restores the splitter to its former position.This version is cited in the following notes:
- Attribute Browser controls
- Auto-set Prototype: A command Bar Item
- Badge pop-up picker
- Breadcrumb bar (for hoisted views)
- Command Bar
- Command Bar
- Command Bar Slash commands
- Command Bar sources
- createTextLink(sourceItem, destinationItem, regexAnchor [, linkTypeStr, guardStr])
- Custom commands and articles
- Edit Background dialog
- EnabledWhen
- Find results stand-alone dialog
- Help menu
- In-document window tabs and the tab bar
- Info Inspector
- Markdown preview rendering
- Matching Tabs
- Other Inspector
- Pattern: bargraph() (for container plot only)
- Preview tab
- Remove Inspector
- Spreadsheet Import: CSV and Tab-Delimited Text
- Stamps
- String.split(regexStr)
- Text pane multi-item selection
- Text pane, no text selection, pop-up menu
- Text pane, text selected, pop-up menu
- TextHTML
- TextMarkdown
- View filter toolbar
- View pane Find toolbar, pop-up menu