Weekly Progress

Elements Channels

A new Elements build comes out every week. Pick the channel that matches how close to the edge you want to work.

Changes in .3081 since .3071

Core

  • E27631: case in record not supported uses the wrong error code
  • E27627: Add diagnostics for Cooper untyped param writes
  • E27627: Add wider tests for untyped params across Island, Toffee, Echoes, and Cooper
  • E27661: Bad error and w/o position wheh using coalesceEmpty() with non-string type
  • E27667: C#: bad reformat
  • E27623: C#: bad reformat for standalone {} block
  • E27650: C#: bad reformat with tuple
  • E27662: C#: NRE when using partial named tuple
  • E27607: Cannot refactor/rename tuple var
  • E27642: coalesce and Potential null value is implicitly cast to not nullable String
  • E27627: Cooper: NRE on unconstrained generic casts
  • E27627: Cooper: Preserve static (e.g. Color.RED/Color.red) and instance (eg Color.Red)
  • E27627: Delphi/Island: fix implicit interface helper calls to pass Self, IID, and Obj
  • E27651: Echoes: cannot assign InstanceType
  • E27661: Fix const var overload resolution regression
  • E27614: Fixed regression with Span/ReadOnlySpan<>
  • E27627: Island/Darwin: Match fix for Delphi/Win64 interface ABI: String result after Self, small records in registers
  • E27627: Island/Darwin: untyped params work for all types, specifically including managed (strings, arrays, interfaced objects, etc)
  • E27668: Mercury sample fails to build
  • E27590: Mercury: Continue Do doesnt compile in Do loop
  • E27595: Nested generic param identity: allow nested type decls to shadow generic param type (includes logging)
  • E27658: NRE for Refactor/Rename
  • E27634: Oxygene is missing highlighting for "type" code block
  • E27660: Oxygene: bad block range
  • E27671: Oxygene: Can’t use field after const
  • E27572: Ported xUnit compiler tests to EUnit
  • E27615: Regression: Old-style extension methods failed in DCM (Self counted as param)
  • E27627: Restore managed untyped param writes on Echoes
  • E27612: Restore untyped param support (wip)
  • E27597: Some code structures still affected the AST when ifdef-ed out
  • E27627: Suppress E513 for DCM bare method statements
  • E27568: Visual Studio: new project templates remain after Uninstall
  • E27613: VS2026: cannot add project reference
  • E27479: Water: nested types aren't shown in types tree
  • Better error message for "parameter 1s """
  • Debugger: add message if .pdb not found
  • Debugger: Island: Darwin: debugger doesn't break on exceptions for Release builds
  • Delphi Compatibility: var/const x := nil infers a type of Pointer for x
  • Delphi Compatibility: add support for $ERROR, $WARNING, $HINT, $FATAL message directives (equivalents of $MESSAGE WARN etc)
  • Delphi Compatibility: Allow const to refer to a function, when that function is in the implementation
  • Delphi Compatibility: Allow any constructor name (gated to 'legacy Create')
  • Delphi Compatibility: E27604: Multiple interfaces with a property using the same getter fail with 'Type mismatch' (resolution confused among interfaces)
  • Delphi Compatibility: explicit implements alias should resolve matching overload, not fail on sibling mismatches
  • Delphi Compatibility: In DCM mode, generic parameters are not constrained to be objects (Delphi has no implicit constraint)
  • Delphi Compatibility: Interface methods can be implemented by protected ancestor methods
  • Delphi Compatibility: Minimal untyped param support (byte, integer, int64)
  • Delphi Compatibility: parse Delphi LogicalAnd/Or/Xor operator names (DCM only)
  • Delphi Compatibility: Set of (value1, value2) where the values are defined only there, and anon enums need to be created earlier.
  • Delphi Compatibility: support [ref] attribute on parameters (eg [ref] const)
  • Go to Definition NRE fix
  • Merged EBuild
  • Merged EUnit
  • Merged Everwood5
  • Merged InternetPack
  • Merged IslandDelphi
  • Merged libToffee
  • Merged RTL2
  • Oxygene: fixes for raw strings
  • Regression: Invalid IR building IslandDelphi

Fire & Water

  • E27588: Water: Exception: in CC error popup
  • Action items
  • Close old files on reload to avoid dupes in the Search tree
  • CodeBit: Show diffs in cached approvals too
  • CodeBot/Editor: Show a pop-up for "convert with CodeBot", and cancel paste if popup was dismissed.
  • CodeBot/Editor: Show message when there was no code to paste; Also cancel Smart CC
  • CodeBot: "thinking" indicator
  • CodeBot: Access to search results
  • CodeBot: Action Items
  • CodeBot: Add dedicated CodeBot menu actions
  • CodeBot: Add MCP client suppot (wip)
  • CodeBot: Add MCP function provider support (wip)
  • CodeBot: Adding the AL first account would not always activate it
  • CodeBot: Agent-only skills
  • CodeBot: Agent: allow different models in sub-agents
  • CodeBot: allow buldpr arbitrary projects & solutions in background & with access to results
  • CodeBot: Better "not a diff" annotation for new files
  • CodeBot: better activity info
  • CodeBot: Cursor keys and backspace didn't work in the Question text field
  • CodeBot: default to sending messages on enter
  • CodeBot: diff hunk headers are links and jump to the editor
  • CodeBot: Don't hide a visible CodeBot panel after inserting code from a background AI task
  • CodeBot: Easier global approval for "always save"/readonly shell and git commands
  • CodeBot: highlight "dangerous" approvals
  • CodeBot: Internal: cleanup
  • CodeBot: Keep active approvals visible outside execution groups
  • CodeBot: Let CodeBot see Codex and Claude skills in the solution folder (readonly)
  • CodeBot: Manager sheet (wip)
  • CodeBot: MCP Access
  • CodeBot: MCP Server support
  • CodeBot: New Security review profile & skill
  • CodeBot: NRE proofing if activeTarget was nil
  • CodeBot: Preferences: reload LM Studio models when URL is changed
  • CodeBot: Prompt tightening
  • CodeBot: Regression: could not start builds
  • CodeBot: Run smart-paste via custom agent profile & skill
  • CodeBot: Skill building
  • CodeBot: Smarter Smart CC
  • CodeBot: UI tweaks
  • CodeBot: Use proper shell for external commands, to ensure PATHs
  • CodeBot: v3 Agentic Mode (wip) with:
  • Debugging: ignore RemObjects.Elements.EUnit.TestException by default
  • Diff view for code changes
  • Don't update per-file types on load, update them when the file comes into view
  • Don't update per-file types on load; update them when the file comes into view
  • E27506 Water: cannot uncheck "unvalid" picker value in settings (fine in Fire)
  • Editor: at the end of a line, typing a comma or semicolon should replace a prior comma or period
  • Editor: current type highlight should be more subtle than the current block, not less
  • Editor: dimension keyword for Oxgene
  • Editor: Flash selection when navigating to it from externally
  • Fire: add “Show CodeBot” to CodeBot window, too & revise menu names
  • Fire: auto-layout fix for BuildMessage view
  • Fire: autolayout fix for Build Message view
  • Fire: Bad autolayout on the project references view caused it to shrink
  • Fire: bad autolayout on the project references view caused it to shrink
  • Fire: Changed (defunct) menu item from "Run w/ Instruments " to "Open", and adjusted to new Instruments interface
  • Fire: Close old files on reload to avoid dupes in Search Tree
  • Fire: Disable Paste commands if the clipboard has no text
  • Fire: Fix for splitter positions getting messed up on reload on Tahoe
  • Fire: Menu item and short for Paste & Convert w/ CodeBot
  • Fire: Menu item and shortcuts for Paste & Convert w/ CodeBot; disable Paste commands if clipboard has no text
  • Function approval, progress & annotations
  • Jumpbar: nested class is shown twice in the Jumpbar
  • Let files in the search tree be expandable by default
  • Let files in the search tree be expandable by default to "find all.”
  • Menu item for toggling long vs short inline messages
  • New tools for folder browsing, running builds, web access, question and more
  • Regression: on-disk changes to .projitem in a shared project didn't trigger a reload
  • Skills
  • Solution Tree: sort on filename w/o extension, first
  • Solution Tree: sort on filename w/o extension, first (regression, lose case-insensitivity)
  • Sub-agents
  • Water: cannot uncheck “invalid" picker value in settings (fine in Fire)
  • Water: catch exceptions in dispatch
  • Water: Manage accounts option was missing from CodeBot Preferences
  • Water: renamed button on Accounts Manager for clarity
  • Water: support for headers and sorting indicators in table view
  • Water: Target Framework dropdown list is cut and isn't scrollable
  • WebProjects: context menu to open current page in browser
  • Website publishing improvements
  • Xaml Preview (wip)

EBuild

  • Cleaner output for —debug-reference-resolving
  • Delphi Project Import: set DefaultObjectModel to ”Delphi”
  • Delphi Project Import: Settings tweaks
  • ESP: Fix for ContentPlaceholders rendering too much
  • ESP: Handle <%-- comment blocks
  • ESP: Read web.config directly from the project folder and reuse an existing appSettings node when merging configuration, improving EnableWebConfig handling and avoiding duplicate sections.
  • Handle <script runat=“server” blocks
  • Island/Delphi: Support for Windows/arm64 architecture (disabled again for now, since Delphi doesn't come with the .dcps needed)

Elements RTL

  • Add YAML serialization support for Json documents
  • Expse Pid on Process
  • Http: Add Cancel support to HTTP requests
  • Http: Add proxy support (none, system, custom)
  • Json deserializer: better location info for unterminated string/document
  • Json deserializer: was too lenient and allowed some unterminated Json in TryFrom( with aAllowPartial = false
  • Locking fix
  • NRE fix in attribute lookup for nil namespace
  • Serialization: Support Decimal (Echoes only and lossy)
  • Serialization: support serialized-as-string-value enum members (in AspectGenerated Encode./Decode only)

Island DelphiSupport

  • SetLength for arrays
  • TProc/block combatibility (wip)
  • Typo fix

Internet Pack

  • Fix for buffered reads missing data
  • HTTP: Support for manual chunked response streaming, e.g. for SSE
  • Toffee: Server could crash the process when closed
  • Toffee: Server failed on Cocoa, due to the use of wrong class instantiation code