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.

Change Log

Loading change log…

Changes in .3139 since .3125

  • Otherwise identical to .3125
  • Promethium Preview

Core

  • E27440: ASP.NET Core/Razor-based Web App compilation error
  • E27181: Debugger: possibility to edit value in Water debugger
  • E27886: if exists() doesn’t work as a second operand to OR
  • E27181: Water/debugger: possibility to edit value in debugger
  • E27181: Water/debugger: possibility to edit value in debugger (.NET Core)
  • E27181: Water/debugger: possibility to edit value in debugger (Cooper)
  • Add .NET Core ESP website and server templates for all Elements languages
  • Add Cooper regression tests for Char reference casts and mapped String plus Char behavior
  • Correct external method detection for Objective-C output signatures
  • Correct rejected exception filter handling by restarting the search through the normal rethrow path and marking the continuation unreachable.
  • Debugger: Add CoreCLR redirected console input
  • Debugger: Add cross-platform Java console input
  • Debugger: Add full-line debugger console input support (wip)
  • Debugger: Add iOS Simulator dyld shared cache support
  • Debugger: Add Windows ConPTY support for Java console input
  • Debugger: GetMembers exception if type is not resolved
  • Debugger: Store source files checksum into .pdb? (Classic pdb)
  • Delphi Compatibility: $DELPHI ON mode could be missed with earlier fixed code
  • Delphi Compatibility: Accept array elements for Move() (takes address of the element; see also prior commits re Move)
  • Delphi Compatibility: Accept Pointer as a type in DCM mode without System unit being present (like other basic types; already in Echoes)
  • Delphi Compatibility: Add more Delphi hard cast support (Echoes is more limited, eg won't allow TClassType(Pointer))
  • Delphi Compatibility: Add new system intrinsics for RTTI info
  • Delphi Compatibility: Add support for Initialize and Finalize (living in the Delphi SDK)
  • Delphi Compatibility: Allow access casts (descendant used purely to view / get layout access, then cast through it)
  • Delphi Compatibility: Allow assigning record methods to a callback (procedural type) that has a Self param
  • Delphi Compatibility: Allow Currency (fixed-point type) to implicitly convert to floating point types in DCM mode (Delphi allows this, non-DCM Oxygene requires a cast)
  • Delphi Compatibility: Allow Delphi method-pointer typecasts to share TMethod Code/Data storage
  • Delphi Compatibility: Allow hard casts between unrelated types: TFoo(bar) where bar is TBar and not related
  • Delphi Compatibility: Allow named const sets as the RHS of 'in' (eg GetTypeKind(T) in MyTypes, or a literal set)
  • Delphi Compatibility: Allow passing method addresses to Pointer parameters
  • Delphi Compatibility: Allow records with Implicit(...): Pointer to convert to typed pointer targets
  • Delphi Compatibility: Allow resolution of Create as a non-constructor (static method, or free method) (followup to earlier commit re ancestor Create resolution)
  • Delphi Compatibility: Avoid showing "" in cast diagnostic
  • Delphi Compatibility: Classes with implicit TObject ancestry (but never explicitly stated) did not get the Delphi object model, when set as default
  • Delphi Compatibility: clean up callable overload tests (was too much duplication)
  • Delphi Compatibility: Close callable and const-borrow edge cases
  • Delphi Compatibility: DCP files can escape method names (eg &op_Equal) so unescape
  • Delphi Compatibility: DCP import: interfaced methods (eg Generics.Defaults.IComparer.Compare) had incorrect Self param. Requires re-importing FX files
  • Delphi Compatibility: Delphi allows pointers to be assigned to strongly typed object references. Also emit a warning; it is not safe.
  • Delphi Compatibility: Delphi defines: fix crash; sometimes some defines already exist
  • Delphi Compatibility: Delphi metaclasses did not expose constructors to create instances of the type
  • Delphi Compatibility: Derived overloads could hide ancestor members (eg, constructor Create, then in descendant, a Create method): these now resolve
  • Delphi Compatibility: E27625, allow TTask to be created with a block (already supported anon methods, closures, lambdas)
  • Delphi Compatibility: Expand atomic intrinsics
  • Delphi Compatibility: Extend existing support for addr-of inside a typed constant to local consts
  • Delphi Compatibility: fix parameterless calls being rejected as method groups
  • Delphi Compatibility: Generic type calls identically named non-generic-type's static Create factory method (not constructor): ensure resolved correctly
  • Delphi Compatibility: Handle 'array of T' and 'TArray' as the same thing (one is aliased to the other); bare methods (no brackets) may or may not be called or assigned, match S4D expectations
  • Delphi Compatibility: Handle Delphi's array Slice(), which treats it as an open array, ptr+high (needs safe handling for Length() etc that cannot use any other array prelude or metadata)
  • Delphi Compatibility: If a property and method with the same name exist, allow the method to be called
  • Delphi Compatibility: Ignore imported FX defines with value 0 for IFDEFs
  • Delphi Compatibility: Implement all Delphi custom operator overloading
  • Delphi Compatibility: importing DCPs -> FX adds standard Delphi defines incl version-specific (CONSOLE is defined based on DCP and project settings though). VCL and FMX are defined when vcl and fmx packages are imported, etc
  • Delphi Compatibility: In DCM mode, allow Delphi raw Pointer parameters to match typed pointers
  • Delphi Compatibility: Inline declared method of object variables were not recognized as using the same code/data storage as normal event handler method pointers
  • Delphi Compatibility: Island: make TypeInfo(T).Kind match GetTypeKind(T) for local types
  • Delphi Compatibility: Island: preserve Delphi access-class hard casts
  • Delphi Compatibility: Keep DCM array of const distinct from array of Object
  • Delphi Compatibility: Keep non-DCM bare method auto-calls when another overload takes a single-method interface
  • Delphi Compatibility: Map DCM 'Create...' constructor calls to imported FX 'with...' constructor names (eg in Spring, EConvertError.CreateResFmt())
  • Delphi Compatibility: Oxygene: resolve imported constructor names such as withRes
  • Delphi Compatibility: Pass const-record fields to untyped const parameters without requiring writable owner storage
  • Delphi Compatibility: Procedures can now have a 'Result'-named parameter (previously errored that Result could not be assigned to)
  • Delphi Compatibility: Project importer adds default unit prefixes (with Delphi namespace)
  • Delphi Compatibility: Regard two identical array types as identical (also, address of an array and address of the first element can be compatible references)
  • Delphi Compatibility: Resolve Create ambiguity by constructor first, then static factory (eg TLookup.Create(comparer) vs Create(...))
  • Delphi Compatibility: Resolve identifiers for qualifier-style lookup only with DefaultUsesPrefix before symbols (System.foo is foo in System.pas, before resolving System() global)
  • Delphi Compatibility: resolve implicit calls and callbacks per overload in DCM
  • Delphi Compatibility: Support Copy() inbuilt for arrays
  • Delphi Compatibility: Support casting pointers to fixed arrays (eg, pointer to array[0..5] of Type)
  • Delphi Compatibility: Support Delphi array-of-const calls to imported SDK methods, eg Exception.CreateFmt('%s', ['value'] - build TVarRec[] plus hidden High(Args) param
  • Delphi Compatibility: Support Delphi GetMem/FreeMem/ReallocMem memory built-ins
  • Delphi Compatibility: Support Delphi l-value typecasts like "PHashTable(foo) := p"
  • Delphi Compatibility: Support Delphi New/Dispose memory built-ins (eg &New(p) / Dispose(p), with TypeInfo(P^) when needed)
  • Delphi Compatibility: Support Delphi variant (union) records (union at any location in the record, managed types not supported inside a union (same as Delphi))
  • Delphi Compatibility: Support imported FX reference-to-function anonymous-method types as callable values (eg TFunc = reference to function: TResult)
  • Delphi Compatibility: Support PByte(ptr)[offset] when calling Move() (handle typed pointer (array) derefs as addresses passed to untyped, ie ^Void, params)
  • Delphi Compatibility: Support untyped const params (seen but not isolated to generic methods, used in Spring Weak)
  • Delphi Compatibility: Treat generic procedure-of-object aliases as Delphi method pointers (eg TNotifyEvent(fInvoke) := Invoke / Result := TNotifyEvent(inherited Invoke))
  • Delphi Compatibility: Write-only properties of a method type (foo.OnChanged := EventChanged) did not resolve the type so treated the method name as a method call
  • Delphi Compatibility: {ass hard-casts into var/out params (ensures the cast does not create a temporary but uses the original storage)
  • Deploy EBuild System.* dependencies
  • Fix C# async void exception dispatch and context lifecycle
  • Fix Cocoa exception helper binding by separating Island wrappers, resolving the Cocoa exception type, and preserving correct temporary initialization.
  • Fix Cooper string concatenation typing and Java value conversions
  • Fix Island/Delphi class-variable export handling for direct and storage-record BPL symbols
  • Fix Java code generation for Assigned checks on Cooper events
  • Fix membership comparisons to honor overloaded equality for reference types & preserve single evaluation and nil handling
  • Fuchsia: add zxdb DAP debugging backend
  • Harden debugger process shutdown and termination reporting
  • Island backend: fix IR model validation (set Void type on method-prefix inline asm (returning void) metadata)
  • Island backend: In debug mode, validate IR model before serialization
  • Island backend: Map WeakAttribute to Weak, not NoReturn
  • Island backend: When an object file write/emit task fails, wait so that the exception is seen
  • Island/Delphi: Add manual TInterfacedObject Windows probe
  • Island/Delphi: Fix ARM64 DCU namespace parsing and preserve INF address slots
  • Island/Delphi: Fix Delphi 13 forward address slot reservation and ARM64 namespace slot accounting, with regression coverage for imported namespaces, aliases, legacy validation, and FMX WebBrowser parsing.
  • Island/Delphi: Fix Delphi property TypeInfo emission to use indirect pointers and add a Windows runtime regression test for TypInfo property access.
  • Island/Delphi: Fix Delphi TArray pointer FX handling
  • Island/Delphi: Fix hidden-result LLVM invalid record regression
  • Island/Delphi: Fix Island managed-record and Delphi string ownership across inlining, ARC cleanup, and returns; harden string release semantics and add runtime regression coverage.
  • Island/Delphi: import class vars, so the symbol can be found (eg the class property TStopWatch.Frequency used FFrequency, but it was not found)
  • Island/Delphi: Preserve Delphi property defaults, storage predicates, indexes, and inherited types as FX metadata with dump support and compatibility regression coverage
  • island/Delphi: Resolve Delphi 13 generic method references through validated procedure owners and add regression coverage for direct, invalid, and FMX address mappings
  • Map compiler member access values to Island reflection metadata
  • Merged cooper.jar
  • Merged EBuild
  • Merged EUnit
  • Merged Everwood5
  • Merged InternetPack
  • Merged IslandDelphi
  • Merged IslandRTL
  • Merged libToffee
  • Merged RTL2
  • Merged RTL2.Web
  • Regression: Fix inherited Cocoa extension constructor dispatch to pass the object receiver instead of an objc_super record, with a Darwin regression test for inherited construction.
  • Resolve RESX writer dependencies in isolated bootstrap build output
  • Stabilize cross-runtime diagnostic tests and isolate runner RTL dependencies
  • Stop advertising CPS for ASP.NET Core projects in Visual Studio
  • Toogee Global Mangling: Preserve foreign signatures for external global methods
  • Use compatibility Darwin SDKs for CI builds to still generate x64; exclude native SDKs from full setups

Fire & Water

  • Add built-in documentation knowledge bases
  • Add ESP debug mode project setting for web and live-mode targets
  • Add ESP Live mode support
  • Add full debugger state capture to exception sheets
  • Add interactive program input to the debugger console
  • Add selectable Xcode developer folders ad IDE (Fire only) and Project setting
  • Added Android device screenshot capture
  • Added Apple device screenshot capture
  • Allow dotted project template names
  • Cocoa: Pass store context when resolving provisioning profiles
  • Debugger: Handle simulator shutdown signals during debugging
  • Debugger: Improve simulator symbol-cache diagnostics
  • Debugger: Support for console input in the debugger (wip)
  • Debugger: Support running iOS projects on visionOS
  • Document EBuild runtime-change recovery
  • E27892 Water: JumpBar text and menu arrows have incorrect theme colors
  • Earth: Fix GTK tree overlay visibility and simplify workspace navigation chrome
  • Earth: Pass configured Docker executable path to build settings
  • Earth: Remoting SDK & Data Abstract support
  • Editor: support for coordinated linked undo/redo across buffers
  • Enable platform capability support for Fuchsia targets
  • ESP website templates
  • Fire is now arm64-only (still supports developing for x64)
  • Fire: Detect and launch Xcode Device Hub or Simulator from the menu
  • Guard newly created file selection
  • Guard shared project reference updates
  • Handle missing skill selections when preparing CodeBot approvals
  • Harden account persistence against incomplete loads
  • Improve debugger console standard input handling and preserve prompts during output
  • Improve Help database packaging and browsing
  • Link multi-file FixIt edits into a shared undo operation
  • Preserve descendant selection when resolving grouped project nodes
  • Preserve edited comparison sections during realignment
  • Prevent file package directories from being treated as folder projects during drag and drop
  • Preview for .html files
  • Propagate scheduled-run skill context
  • Refine macOS search field styling and compact file filter layout
  • Refresh live website folders from file-system events
  • Refresh nested syntax colorers on theme changes
  • Refresh Project Settings colors on theme changes
  • Remove Ionic.Zip dependency from knowledgebase tests and shared projects
  • Render concurrent interactive prompts
  • Resolve: Defer Island SDK population to on-demand downloads
  • Restart ESP live mode once when the host-pinned runtime changes
  • Retain debug canvas during stepping
  • Serialize CrossBox project lifecycle operations on a dedicated queue
  • Serialize project reference resolution through a per-solution queue
  • Show API key verification errors when adding accounts
  • Support for using Device Hub for iOS debugging
  • Support Fuchsia device monitoring and validate target SDK architectures
  • Water: Detect fully vs. partially imported Delphi SDK versions
  • Water: HTML/Markdown preview shows above modal dialogs
  • Water: layout tweak for busy CodeBot chat field
  • Water: Move Delphi SDK import action to the dialog’s primary button area

CodeBot

  • Add Claude Opus deep reasoning and Grok voice transcription support
  • Add gpt-6.1-sol API pricing and request support
  • Add gpt-6.1-sol as preferred coding, review, and reasoning model
  • Add Grok voice transcription model support and include selected model in multipart requests
  • CodeBot: Add Json validation and workspace folder creation tools (Campfire)
  • CodeBot: Truncate long approval text in the middle for display
  • Connect CodeBot Avatar asynchronously to avoid blocking setup and prompt submission
  • Continue IDE requests in the current CodeBot chat (for now)
  • Expose MCP tools for scheduled agent runs
  • Expose selectable runtime destinations to CodeBot
  • Forward background media progress to the workspace UI
  • GPT-6 Astra support: asynchronous tools
  • Improve CodeBot question color contrast
  • Improve CodeBot run history and transcript handling
  • Improve CodeBot skill loading diagnostics
  • Improve skill creation guidance and strengthen delivery verification handoffs
  • Message fix
  • More guidance to use the Elements documentation knowledge base
  • Refine CodeBot footer content and omit empty project details
  • Require dedicated approval to overwrite (as opposed to create) image files
  • Serialize interactive CodeBot prompts (yet again)
  • Support custom responses in CodeBot multiple-choice questions
  • Update CodeBot model capability routing
  • Update CodeBot model strategies for gpt-6 routing and prompt cache preferences
  • Update Grok latest strategy to Grok 4.7 and latest image model
  • Update Instagram media upload endpoint
  • Update OpenAI model-routing expectations

EBuild

  • E27440: ASP.NET Core/Razor-based Web App compilation error
  • Add isolated Fuchsia debugging deployment with symbol artifacts and private repositories
  • Add preserialized .resx support for modern targets
  • Allow newer package assemblies to supersede framework references at runtime What the fix does, and why
  • Android: Add ADB mDNS wireless device reconnection
  • Delphi project import: don't compile .inc files as source units
  • ESP: Add Global.asax processing and web application support
  • ESP: Add Localization with ~
  • ESP: Support static custom error pages in ESP publications
  • ESP: Validate and restart ESP publication runtimes
  • Improved ESP support with live mode & .aspx parsing improvements
  • Island/Delphi: enable Win/arm64 import
  • Keep solution failure counts reliable when projects fail in parallel
  • Preserve and publish project, host, and unit diagnostics across website builds
  • Release .resx input files after successful resource compilation
  • Report unresolved .NET SDK before Razor compilation
  • Serialize drawing resources in .resx compilation
  • Sign embedded dylibs alongside frameworks to preserve nested code signatures and entitlements
  • Skip macOS provisioning profile lookup when no profile is configured

Elements RTL

  • Add Dictionary.ToList to return key-value pairs from the dictionary sequence
  • Add opt-in strict JSON parsing with RFC-compliant validation
  • Deprecate legacy endpoint properties and add first/last retrieval methods with default fallbacks
  • Fix reflection method invocation to expose return values and invoke non-public methods
  • Fixes for Afterhours reports: Fix invariant date parsing and formatting across platforms, standardize UTC calendar component extraction, and improve Toffee locale-aware numeric and percentage formatting.
  • Normalize invariant date/time parsing and formatting across platforms
  • Optimize broadcast subscription removal with receiver-based indexing and centralized cleanup logic
  • Preserve literal T in date-time format patterns on Cocoa
  • Toffee: Ensure HTTP response callbacks fire once for successful and failed requests
  • Toffee: Handle missing HTTP responses and preserve timeout error behavior
  • Use cancellable NSURLSession transport for synchronous HTTP requests, enabling cancellation and timeout handling during response header and body waits.
  • Workaround for E27885: LLD bug breaks exception unwind

Internet Pack

  • Handle listener shutdowns with a dedicated interrupted-accept exception and preserve socket errors for genuine accept failures.
  • Support secure platform WebSockets and robust steering transport

Earth Preview

  • Earth: Normalize C.UTF-8 sentinel locales for Mono launches
  • Implement a WSLg-safe themed in-window menu

Campfire

  • Close image workbench with Cmd-W
  • Defer application termination until workspace shutdown completes
  • Fix for NRE when generating image w/o suggested path
  • Fix welcome message
  • Improve media model matching for provider-qualified and workflow master model requests
  • Improve media model selection and discovery
  • Improved new workspace creation flow
  • Invert generated image mask luminance for OpenAI
  • Keep saved media models usable during discovery
  • More compact ArcFace comparison results
  • Route new documents through the workspace document controller and simplify document menu configuration
  • Show transparency grids only for transparent images

GitBrowser

  • Add conflict summary action to explanation sheets
  • GitBroser/Mac: Improve branch toolbar controls for macOS 27
  • GitBrowser/Linux: Launch terminal executables on the Flatpak host
  • GitBrowser/Linux: remove repository doesn't refresh Commits and Files lists
  • GitBrowser/Windows: Add magnifying glass for the Search box
  • GitBrowser/Windows: Refresh repository state after external Git updates
  • Improve merge conflict actions with explicit options and Commit Merge support
  • Open existing pull or merge requests directly
  • Optimize syntax state propagation across comparison chunks
  • Show conflicted file in suggestion explanations
  • Stabilize branch popup refreshes

Island RTL

  • Darwin: use DISPATCHTIMEFOREVER for non-repeating timers
  • Expand exception filter tests to verify outer propagation, interface mismatches, and exactly-once finally execution
  • Fix Darwin locale bridging and add locale formatting tests
  • Fix DateTime formatting for 12-hour boundaries, AM/PM markers, year tokens, and percent-prefixed custom formats
  • Fix EventWaitHandle timed waits and add comprehensive signal/reset behavior tests
  • Fix locale-aware date parsing and expand two-digit year token handling
  • Fix native Console.ReadLine buffering to handle UTF-8

Island Delphi Support

  • Restore missing Delphi intrinsics in IslandDelphi

RemObjects Infrastructure

  • Add GPT-6.1 Sol API pricing and request support
  • Add Grok voice transcription model support and include selected model in multipart requests
  • Add nested session coverage for deferred tool completion, ancestor resumption, background dispatch, and question event filtering across descendant runs.
  • Support ElevenLabs music inpainting storage
  • Support GPT-6 prompt caching and Fast pricing
  • Support newer ElevenLabs music models
  • Update OpenAI model pricing, add flex rates and support for new model variants, and enable Responses API request features for gpt-6.1 models
  • Use unit-aware session cookie expiration