1.4.0 (2026-06-24)
- added claim debug agent for testing claims (929631d)
- complete refactor of agent options, soon to become it's own module with useful dsl for agent and application development (929631d)
- dsl types moved out of test, soon to become a module of it's own (929631d)
- kotlinx 1.8.1 -> 1.10.0 (929631d)
- more dsl types for more objects related to agents and requests (929631d)
- registry agent latest edition is now 5 (929631d)
- registry agents now have claims and dependencies (929631d)
- session now has full budget support, support configurable spending control for agents (929631d)
- session request now specifies values of claims made by agents (929631d)
- session states now contain a receipt of all claims made by all agents and their values and associated dependencies (929631d)
- session states now include running budgets for the session and every agent (929631d)
1.3.0 (2026-05-29)
- add the base exponent as a configuration property (5da1a21)
- added encoding/decoding for ByteSize with tests (5da1a21)
- better exceptions from string reference serializer (bad discriminated types used to revert to string decoding rather than reporting any error from those discriminated types) (792725a)
- bump console to version v0.3.15 (b6fb55d)
- constant references no longer require a serialization context (792725a)
- maxStreamCharsUTF8 renamed to maxStreamChars which now counts using bytes instead of UTF-8 chars (5da1a21)
- PrototypeString now allows inline strings and string constant references (792725a)
- rename configuration properties around retry delays to make it easier to understand (5da1a21)
- replace ValidationFileSize and BinaryByteSize with ByteSize (5da1a21)
- decodeBase64Bytes/encodeBase64Bytes replaced with Base64.decode and Base64.encode (64e3699)
- more comprehensive base64/encoding support for potential string references (fixes bug with blob defaults) (64e3699)
- proxies field in GraphAgentRequest is now optional (66fb046)
- update expected exceptions for registry agent string serialization (93f79fe)
1.2.0 (2026-05-08)
- added tests for the test mcp server, used by prototype runtime tests (861399d)
- allow config options to be specified using command line arguments (57182c5)
- cloud: config option to send session ID along with LLM proxy requests (36acce1)
- current agent edition is now 4 (861399d)
- Let args be specified via command line args (#269) (57182c5)
- Print guidance on BindException (#274) (e3c7cdc)
- prompt adjustments for agent time awareness (861399d)
- prototype runtime (861399d)
- prototype runtime powered multi-agent tests (861399d)
- registry agents can now reference constants (861399d)
- share model proxy details to agents via envs (#276) (128665e)
- update gradle to 9.0.0, kotlin to 2.3.20 and jvm version to 24 (#264) (9486783)
- update to kotling 2.3.10 (861399d)
- updated kotlin-sdk (861399d)
- wait tools can now have a customized timeout (861399d)
- wait tools now require the current time, allowing the replaying of previous messages (861399d)
- all references to jdk on dockerfile now match 24, gradle version upgraded to version 9 (28afa08)
- GraphAgentTool contains a full MCP tool description (861399d)
- marketplace extension polymorphic type not inheriting parent class (1e8252c)
- RegistryAgentExtension for marketplace deserialization fix (861399d)
- stop implicitly ignoring ~/.coral/agents/* when agents are explicitly defined without including ~/.coral/agents/* (#267) (3c5a041)
- streamable mcp transport cancellations don't throw exceptions (861399d)
- update build files and dockerfile for java 24 and gradle 9.0.0 (c832be9)
1.1.0 (2026-03-10)
- /ui/console can now be disabled in the config (5442640)
- added an optional extension class to a RestrictedRegistryAgent, allowing the marketplace to provide additional in spec information about agents (d0c7a28)
- added file/url reference support for default values for options string, list[string], blob and list[blob] (15bd568)
- added marketplace table to registry agent (3654e10)
- added new FileAgentRegistrySource tests testWatchDuplicates, testModifyHumanSyntaxError and testWatchRenameFolderHuman (921f69b)
- added session_running event (58eb42b)
- added SessionEndReport as a OpenAPI type pending better webhook documentation (e0fcd8d)
- added support for base64 translation of file/url references (15bd568)
- added test coverage for deferred session execution (da42d8f)
- added test coverage for namespace creation and deletion endpoints (da42d8f)
- added tests testGetNamespaceNames, testGetNamespaceSessions and testNamespaceDeleteOnLastSessionExit (23bce40)
- added timestamps to events, threads and thread closures (1d171f1)
- agent annotations now included in agent state (c67388b)
- AgentRegistrySource's agents field is now mutable (1599800)
- all ARS' have names now (c62e192)
- all runtimes now have a "transport" field for specifying either "sse" or "streamable_http" which controls the CORAL_CONNECTION_URL env var (7cf8378)
- all runtimes now have a "transport" field for specifying either "sse" or "streamable_http" which controls the CORAL_CONNECTION_URL env var (a946763)
- annotation filters (url base64 encode json maps) available on lsm websocket endpoint (adb1d08)
- annotations included in lsm events (adb1d08)
- annotations on agents, sessions and namespaces (31d2738)
- BasicSession now contains session status (f94f8ea)
- blob and blob lists now use base64 strings for serialization, with helper functions for dealing with bytes (a4b04c1)
- bump default console version to 0.3.2 (645f565)
- change CORAL_CONNECTION_URL to the streamable http url instead of SSE, pending reg3 where the decision can be made in the agent (4a681e7)
- change CORAL_CONNECTION_URL to the streamable http url instead of SSE, pending reg3 where the decision can be made in the agent (a449c28)
- coral console automatic bundle downloading and serving, configurable through [console] config table (5a282d6)
- coral-agent.toml relative pathing for executables (a0454e9)
- custom tools POST path params (#248) (f5b9eca)
- description longer optional and is now validated (2190222)
- deserialization of coral-agent.toml files now must be done with a companion object (9de96c4)
- dropped number/secret option types (c8dd031)
- dropped option.description field (now option.display.description) (c8dd031)
- dropped support for edition 1-2 agents, minimum supported edition is now 3 (c8dd031)
- edition is no longer optional (e180c3b)
- edition is now part of the registry agent type (3654e10)
- executable runtime now has "path" and "argument" fields instead of just "command" (7cf8378)
- executable runtime now has "path" and "argument" fields instead of just "command" (a946763)
- FileAgentRegistrySource now supports basic file watching, currently just modifications/deletions for previously matched files (9af0df8)
- filter potential paths by files that can be executed (76cb35c)
- Generate keys flag (48a35d5)
- implemented marketplace API in the MarketplaceAgentRegistrySource (5ac1167)
- implemented SessionAgentStatus in SessionAgent (64742d3)
- improved consistency in session api by provided extended and base state options (e96ac65)
- include PATH in the list of potential files to execute (76cb35c)
- introduced new FileAgentRegistrySource to replace agent registries (registry.toml) (4bab993)
- introduced new SessionAgentStatus, containing sub-statuses SessionAgentConnectionStatus and SessionAgentCommunicationStatus (64742d3)
- keywords re implemented at agent level (5b174fa)
- license is now either full text or an SDPX expression (5b174fa)
- ListAgentRegistrySource now provides mutation methods (add/remove) and caching (1599800)
- LocalSessionManager events refactored to contain more appropriate data, future-proofed for events that do not relate to sessions or namespaces (1913579)
- log levels (#251) (9e003ec)
- log levels (#251) (316dc85)
- major overhaul of FileAgentRegistrySource to refactor for pitfalls in JVM's WatchService (865c6b7)
- many qol changes for local registry pattern watches (3d14efa)
- marketplace renaming to avoid out of spec (no snake case) toml files (332e5d1)
- marketplace types (9a781f1)
- more tests for FileAgentRegistrySource (bd6f1d4)
- moved agent registry to a AgentRegistrySource of FileAgentRegistrySource (4bab993)
- namespace states now follow session states in having base and extended versions, with one wrapping type (e847b89)
- namespaces are now objects (so that they may contain annotations) (31d2738)
- on windows, support variations of the given executable path with .exe, .bat and .cmd extensions (ea20d18)
- preemptively added agent sleep events (not yet used) (80cf8e5)
- promoted readme, summary, license and links to [agent] (a6178bb)
- readme and summary no longer optional (d9af0e9)
- replaced BasicSession and BasicNamespace with SessionState and SessionNamespaceState (ad8abfc)
- replaced ConcurrentMutableList with MutableStateFlow, resolving a few rare concurrency bugs around waiting for messages in tests (c9fb254)
- session post changed location, namespace information is now part of the body (f94f8ea)
- session runtime settings can specify the session state given in the end report (extended or base) with extendedEndReport: true/false (bbf7225)
- SessionAgentUsageReport now contains agent annotations (bbf7225)
- SessionEndReport now contains namespace and session states rather than names and IDs (bbf7225)
- sessions now have a full status type instead of just a closing boolean (50a85b6)
- sessions' launching can be deferred (31d2738)
- SessionState renamed to SessionStateBase, SessionState now a sealed type that can contain either base or extended variants (c49726c)
- socket agent (5007cea)
- support for file and url references on agent.license.text (spdx), agent.description, agent.readme and agent.summary (9de96c4)
- support for rescanning local agents on a timer (0f0b297)
- tests for FileAgentRegistrySource (883b652)
- timestamps (#250) (c71a5e7)
- timestamps (#250) (1a83071)
- updated tomlkt (c8dd031)
- use Instant with a custom ISO-8601 serializer for timestamps across the project (32556df)
- use Instant with a custom ISO-8601 serializer for timestamps across the project (c4ebdd7)
- validation for all fields in RegistryAgent, validating on resolution (d1e2354)
- warning for duplicate names is done in the AgentRegistry instead of the builder now, allowing re-issuing of the warning later when new agents are added dynamically (c62e192)
- watchLocalAgents config value (default true) added to registry config (e.g registry.watch_local_agents) (9af0df8)
- /ui/console/* now redirects to index.html (92d3e51)
- add deprecated comments (70de091)
- add libudev-zero (8cb739b)
- add libudev1 + switch to jammy everywhere (8cb739b)
- add other missing libraries (8cb739b)
- added warnings when agents with duplicate names are attempted to be loaded as new or modified into the same FileAgentRegistrySource (3b19652)
- adjusted testModify to actually check for modifications (921f69b)
- agent reading from modification is debounced now, fixing multiple reloads and instances were modification notifications were given before the file was fully written (c28b380)
- AgentRegistry now shows de-duplicated local agents again (5b0cd99)
- allow unknown keys in toml files to aid in backwards compatibility (bf115ba)
- apparently jammy is ubuntu (8cb739b)
- append .html to paths in /ui/console, send 404s to 404.html (964a175)
- append .html to paths in /ui/console, send 404s to 404.html (c22f499)
- avoiding caching dependencies that tests might regenerate between runs (65c2910)
- cancel watch scope even if test fails (1b8ba38)
- cancel watch scope even if test fails (152db8b)
- change venv.sh to account for cd now being from agent toml (bbdfb7f)
- changed sets to lists to support OpenAI (c0527cc)
- consistent naming of public wallet address (4b0cd1d)
- coral console cache path directory recursively created (5442640)
- create namespace route and status code (7f27820)
- default config path envs in Dockerfile (1e20765)
- deleting a namespace now guarantees the namespace is no longer in memory before returning (fixs unreliable test) (9ef81b0)
- downgrade hoplite to get less ugly environment variable names (67a1b9e)
- fixed return type of listing sessions in a namespace (d228c3b)
- fixed small possibility of a race condition in logging tests causing logging messages to be written before a listener was listening (43eb024)
- fixed small possibility of a race condition in logging tests causing logging messages to be written before a listener was listening (00df99d)
- gave echo agent a considerably longer time to get messages before the next one is sent (1a15e70)
- improved FileAgentRegistrySource reliability with detecting watch events (1b8ba38)
- improved FileAgentRegistrySource reliability with detecting watch events (152db8b)
- include the attempted name in the exception thrown for an invalid name (99100de)
- joinAgents now waits (instead of throwing an exception) when the agent's job isn't yet launched (fixes rare race condition in tests) (5048b8f)
- listen on suffixed /sse in exported routes (6c8c5c9)
- ln to right jar (83300b3)
- made endpoints optional in erc8004 (d22c919)
- made UnresolvedRegistryAgent optional fields actually optional (was previously provided by UnresolvedInlineRegistryAgent) (c145345)
- make run task interactive (023b813)
- many fixes for the above also (3d14efa)
- marketplace.pricing.currency defaults to USD and is optional (d1e2354)
- McpResourceTest, McpSessionEventTest and McpToolTests not executing agents (e3b75a1)
- McpResourceTest, McpSessionEventTest and McpToolTests not executing agents (e953397)
- minor bug fixes with certain paths (b30307e)
- name for namespace name listing is now called getAllNamespaceNames in OpenAPI instead of getAllSessions (139f437)
- namespaces are actually deleted now when deleteOnLastSessionExit is true and there are no sessions (ca0f736)
- on windows, prioritize files with executable, command and batch extension over what is specified (fixes gradle, where "gradlew" exists with no extension) (f619ace)
- oops (8cb739b)
- OpenAPI schema fixes for coral-rs (a1528aa)
- proper resource uris (952abf0)
- proper resource uris (55efd5f)
- re-evaluate agents/mergedSoruces in AgentRegistry when accessed to support dynamic agent registry sources (397075a)
- SessionEvent serial name typo (f803311)
- stop loading user directory agents in tests (993e58f)
- switch to bullseye-slim (8cb739b)
- syntax changes for earlier mcp tool schema adjustments (edb715f)
- testPattern no longer requires strict FS ordering (4f3d736)
- thread starvation when blocking inappropriate dispatcher passed into FileAgentRegistrySource (57ca606)
- unix pathing (8b2af4c)
- unresolved registry agents now set registry agent marketplace field (332e5d1)
- update agent name max length to 32 characters (51e9976)
- use DI toml for AgentOptionsTest (445896c)
- Use new bundle naming format, console bump (ef9dd43)
- Use new bundle naming format, console bump (a263281)
- watcher no longer prematurely exits when it finds the wrong path when looking for a specific path (b30307e)
- we go again (8cb739b)
- windows pathing fix from PR#257 + cleanup (54acbfa)