New features / improvements
- 1680: Show OS console messages in muted grey and add a setting to hide them (IDE)
- 1681: Test published web apps from other devices on the local network (IDE, Web)
- 1694: MessageBox returns the pressed button and supports multiple buttons (Desktop)
- 1711: Convert to Uppercase and Convert to Lowercase commands in the code editor (IDE)
- 1732: Add a responsive NavigationBar control for Web pages (Compiler, IDE, Web)
- 1737: Optional C# runtime backend for Command Line applications (Compiler, IDE)
- 1760: Publish Objo Studio for Linux ARM64 (IDE)
- 1805: Allow external input paths in the Plugin SDK (Compiler)
- 1815: Add Canvas.Invalidate for coalesced desktop repaints (Desktop)
- 1818: Allow custom control subclasses to be placed on web pages (Web)
- 1825: Publish a Linux ARM64 Studio download (IDE)
Fixes
- 1739: Pie chart slice labels overlap each other and the title (Desktop)
- 1740: Pie chart legends run off the chart and hide categories (Desktop)
- 1741: Existing coloured windows become see-through after upgrading (Desktop, IDE)
- 1742: macOS ignores window Opacity, alpha frost, and Mask transparency (Desktop)
- 1743: Destructors can repeat when caught exceptions retain the receiver (Compiler)
- 1744: Top-level overloads can execute the wrong function body (Compiler)
- 1745: Constructor overloads can execute the wrong body for enum arguments (Compiler)
- 1746: String array results can prevent object cleanup (Compiler)
- 1747: HashSet values snapshots can prevent object cleanup (Compiler)
- 1748: Finally loops can replace an unmatched exception with a collection error (Compiler)
- 1749: Fixed and ParamArray overloads can call the wrong declaration (Compiler)
- 1750: ByRef constructors and omitted defaults can fail at runtime (Compiler)
- 1751: Passing a property ByRef can fail during copy-back (Compiler)
- 1752: Awaited plugin operations can hang on a blocked host scheduler (Compiler)
- 1753: Matching array and generic interface parameters compile successfully (Compiler)
- 1754: Background operation results reliably wake waiting applications (Compiler)
- 1755: Fix Asc and CriticalSection errors, Task.FromResult typing and Shell timeouts (Compiler)
- 1756: Generic methods forward their type arguments correctly (Compiler)
- 1757: Generic methods accept matching constructed class parameters (Compiler)
- 1758: Generic methods check constructed member values against their type arguments (Compiler)
- 1759: Spinner tooltips and mouse cursors do not work reliably (Desktop)
- 1761: Sort the Inspector Toolbar and Menu Bar lists A-Z, ignoring case (IDE)
- 1762: Web Spinner remains visible when Active is False (Web)
- 1763: Custom ListBox text does not match the ListBox font (Desktop)
- 1764: Tab autocomplete jumps back to an earlier method call (IDE)
- 1765: Resizing or maximising Documentation can crash Studio after selecting text (IDE)
- 1766: TypeOf resolves namespaced and root Object types (Compiler)
- 1768: Web applications shut down cleanly with queued page activations (Compiler, Web)
- 1769: Native callbacks preserve outer exception handlers (Compiler)
- 1770: Field metadata keeps reference defaults alive (Compiler)
- 1771: Repeated calls select the correct Shared or instance method (Compiler)
- 1772: Repeated Object calls select the current argument overload (Compiler)
- 1773: Class indexers preserve ByRef arguments (Compiler)
- 1774: Compound assignments apply required user conversions (Compiler)
- 1775: Compound Assigns calls preserve ByRef arguments (Compiler)
- 1776: Inline functions preserve access to their owning instance (Compiler)
- 1777: Closures retain generic method type arguments (Compiler)
- 1778: Nested event failures preserve the outer handler context (Compiler)
- 1779: Bare compound assignments update inherited properties (Compiler)
- 1780: Async methods preserve their Task when completing immediately (Compiler)
- 1781: Captured variables survive nested async suspension (Compiler)
- 1782: Async event handlers retain their subscriber while suspended (Compiler)
- 1783: Async failures are observed through the returned Task (Compiler)
- 1784: Faulted Tasks preserve the original exception values (Compiler)
- 1785: Toggle Comment shortcut fails on German keyboards on Linux (IDE)
- 1786: Worker job results remain available after completion (Compiler)
- 1787: Application exception handlers receive the correct event context (Compiler)
- 1788: Array.SortWith preserves exceptions raised by comparison callbacks (Compiler)
- 1789: Streams preserve asynchronous buffers and release file handles (Compiler)
- 1790: Database results preserve ownership and release native resources (Compiler)
- 1791: Timer events preserve their source and lifetime across resets (Compiler)
- 1792: URLConnection events preserve their source and request lifetime (Compiler)
- 1793: LLM conversations release tools and cancel pending requests on shutdown (Compiler)
- 1794: Shell commands stop cleanly when a program exits (Compiler)
- 1795: TCP callbacks preserve their connection and event source (Compiler)
- 1796: UDP and WebSocket tasks preserve socket lifetime and message data (Compiler)
- 1797: Serial connections preserve binary reads and discard old device events (Compiler)
- 1798: PostgreSQL notification listeners stop cleanly when a program ends (Compiler)
- 1799: Character conversion functions reject invalid Unicode input (Compiler)
- 1800: System.Quit from plugin events exits with the requested code (Compiler)
- 1801: Worker failures preserve the process exit code (Compiler)
- 1802: Built applications retain DatabaseRow APIs (Compiler, IDE)
- 1803: Typing method parameters and descriptions stays responsive in large projects (IDE)
- 1804: Naming classes, windows and properties stays responsive in large projects (IDE)
- 1806: Improve HTMLViewer reliability on macOS and Linux (Desktop)
- 1807: Enumeration values are indented incorrectly after names ending in underscores (IDE)
- 1808: Insert menu shows duplicate Enumeration commands with different destinations (IDE)
- 1809: Enumerations cannot be dragged from a project into a module (IDE)
- 1812: Analyser does not report invalid enumeration members (Compiler)
- 1813: Whole-number literals in Double or Decimal array literals stay Integer at runtime (Compiler)
- 1814: 'As New' with DateTime is rejected in Var declarations (Compiler)
- 1819: Code editor rewrites typed member names to the casing of an unrelated same-named member (IDE)
- 1821: Keyboard module is not available in web projects (Compiler, Web)
- 1822: Drawing corruption in scaled Pictures after clip restore, shadows, and text (Desktop)
- 1823: Web app features fail silently when the page is served over plain HTTP (Web)
- 1826: AI Assistant fails with a generic error for Ollama models without thinking support (IDE)
- 1827: Plugin SDK releases link to the correct documentation (Other)
- 1833: Web page navigation opens the destination at the top (Web)