1.4.0-beta1
Pre-releaseFeatures
-
representation set dotted line for conditional edges (36fe11fffec3968)
-
subgraph allow produce graph containing subgraph representations both original (from state graph ) and merged (from compile graph) (b1550c773d3cf21)
-
core/CompiledGraph.java enhance subgraph processing in state graph (94322b6ef726f7e)
It ensures that interruptions (nodes marked as "before") are correctly redirected to the real target ID after subgraph expansion.
work on #73 -
core/CompiledGraph.java enhance subgraph processing in state graph (00679e902d3f9ab)
It ensures that interruptions (nodes marked as "before") are correctly redirected to the real target ID after subgraph expansion.
work on #73 -
core/CompiledGraph.java add interruption node checks (bf97c1b8e51a742)
Added checks for interruption nodes before processing state graph nodes and edges.
-
core/StateGraph.java Add error message for non-existent interruption node (d8decf4cde589e7)
Added an error message to handle the scenario where a node configured as an interruption does not exist in the StateGraph.
-
core//SubGraphNode.java introduce SubGraphNode interface (4065ce68c20333f)
Add a new interface `SubGraphNode` in package `org.bsc.langgraph4j`, which defines methods related to managing sub-graph nodes with specific states.
This interface includes a method for obtaining the sub-graph and a static utility method for formatting node IDs to distinct subgraph nodes from standard ones
work on #73 -
core/CompiledGraph.java Refactor
CompiledGraph
to prepare for support of sub-graphs merge (6e534cc81cf880b)- Removed deprecated methods `getEntryPoint` and `getFinishPoint`
work on #73
- Removed deprecated methods `getEntryPoint` and `getFinishPoint`
-
core/Edge.java add methods for target ID matching and source/target id updates (4971ad41235a7f7)
- Added `anyMatchByTargetId` method to check if there is a target with a specific ID by comparing IDs or value mappings.
- Created `withSourceAndTargetIdsUpdated` method to update both the source and target IDs in an Edge, leveraging a Node and provided functions for new IDs.
work on #73
Bug Fixes
-
site rename folder studio/core to studio/base (17610eeb37a20e3)
-
core/Node.java Ensured the
equals
method only casts toNode<?>
if the object is not null, (79f83954ba0308c)work on #73
Documentation
-
move to next release 1.4.0-beta1 (55863cd2ac9ead2)
-
core/CompileConfig.java add javadoc (bc107c8426e4aa3)
-
referes to last 1.4-SNAPSHOT (36cbf7212e128fa)
-
sudio update dependencies to use correct artifact IDs (8bb9f2592ce0d0b)
-
update release documentation (4e56cd883ba28fe)
-
update changeme (8c7d844563a94a8)
Refactor
-
create package internal containing internal classes (76de12bfdd0cd83)
prepare for java module integration
-
create package internal containing internal classes (04594fdbd28a184)
prepare for java module integration
-
create package internal containing internal classes (f50f85ed348559d)
prepare for java module integration
-
core/CompileConfig.java replace List with Set in interrupt fields (3a646b34dafc912)
-
core/CompiledGraph.java use new Edge.withSourceAndTargetIdsUpdated that accept Function<String,EdgeValue> (07dfb3bbf4addea)
-
StateGraph.java remove unnecessary parameters from EdgeValue (91e7798fe922224)
- Removed redundant parameters in `EdgeValue` constructor calls to simplify code
- Updated commented out conditional logic, potentially for future use
- core/Edge.java update method signature and simplify target id handling (9ddf1d0710f1bb9)
Updated the `withSourceAndTargetIdsUpdated` method in `Edge.java` to use a `Function<String, EdgeValue<State>>` instead of `Function<String, String>` for target ids.
Added constructors that allow creating an `EdgeValue` with only an ID or only a condition value.
- core/CompileConfig.java update interrupt fields to List (4729fd8cceabdcb)
- Changed `interruptBefore` and `interruptAfter` from String arrays to Lists to allow for more flexible configuration.
- Deprecated the old getter methods in favor of new methods that return immutable lists.
- Add copy constructor.
-
howtos/subgraph add more tests and bump to new langgraph4j SNAPSHOT (d8cd2a2ca03f147)
work on #73
-
howtos bump to new langgraph4j SNAPSHOT (f43122ed4464445)
-
core/CompiledGraph.java remove redundant graph validation and edge processing (5ea5d6b1c4a06a6)
-
core/Node.java refine node class hierarchy (3752498e84201cd)
-
core/Edge.java update EdgeValue to handle multiple target IDs (a6d269e88df9320)
- add `EdgeCondition` and `AsyncEdgeAction` class in the same file for improve incapsulation and maintanability
- Updated `EdgeValue` to use a new method `withTargetIdsUpdated` which handles updates for multiple target IDs.
- Removed the `EdgeCondition` and `EdgeValue` classes as independent file unit
work on #73
- CompiledGraph.java Renamed method to correctly filter out sub-state graph nodes (bb78ac3ecb40bee)
- Renamed `onlySubStateGraphNodes` to `withoutSubGraphNodes`
- Updated variable names and references throughout the method for clarity
- Changed the creation and handling of `resultEdges` to use a single `StateGraphNodesAndEdges` object
-
core/DiagramGenerator.java simplify subgraph detection (c7aa3919093d4df)
-
core/StateGraph.java update node construction and refactor subgraph management (6dc6be4fe81a9d4)
- Replace `SubGraphNodeAction` with `SubCompiledGraphNode`
- Rename methods to clarify their purpose (`onlySubStateGraphNodes`, `exceptSubStateGraphNodes`)
-
core/Node.java introduce interfaces and classes for subgraph handling (f98c40ee56e30e1)
Refactored SubGraphNode to interface, added concrete implementations for different types of subgraph nodes (State, Compiled).
-
langchain4jToolNodeTest.java remove deprecation in update tool parameters definition (c4b90d64f961bbf)
-
Edge.java replace Collection with StateGraph.Nodes for improved performance and readability (9e703115afe22bf)
- Updated `validate` methods to use `StateGraph.Nodes.anyMatchById` instead of manual containment checks within a collection, enhancing both performance and code clarity.
work on #73
- core/StateGraph consolidate subgraph processing into a single method (03abb16e604c886)
- Extracted subgraph processing logic into `StateGraph::processSubgraphs`
- Moved subgraph-related updates to new `StateGraph::Nodes` and `StateGraph::Edges` classes for better separation of concerns
work on #73
-
core/DiagramGenerator.java access node elements directly (6792e9fdb586042)
work on #73
-
core/StateGraph.java update node handling with new Nodes class (3e45264449ddebf)
- Introduced a new `Nodes` class to encapsulate management of graph nodes, providing methods for checking if a node with a given ID exists, finding sub-graph nodes, and filtering out sub-graph nodes.
- Updated the `StateGraph` class to use the new `Nodes` class for managing nodes, improving code readability and modularity.
- Modified edge lookup methods from `findEdgeBySourceId` and `findEdgesByTargetId` to `edgeBySourceId` and `edgesByTargetId` .
work on #73
-
core/DiagramGenerator.java update edge processing streams to use 'elements' (e59edfd4f6e62ec)
work on #73
-
core/StateGraph.java update edge collection management and improve graph validation (898f5fd2d435492)
Refactored `StateGraph.java` to use a custom `Edges<State>` class for managing edge collections, enhancing maintainability.
Updated methods to find edges by source and target IDs, and added a comprehensive `validateGraph()` method to ensure edge consistency during compilation.
work on #73
- core/EdgeValue.java update EdgeValue implementation to use record and add withTargetIdUpdated method (9891961af89cd3f)
- Adding a new method, `withTargetIdUpdated`, which updates the `id` field while copying other values or modifying mappings based on the input function.
work on #73
- core/Node.java introduce class hierarchy for better structure (f86c51906faf960)
- Change `Node` from a record to a class for more flexibility.
- Add getter methods for `id` and `actionFactory`.
- Introduce `ParallelNode` and `SubGraphNode` subclasses to handle complex node structures.
- Update constructors and refactor method implementations accordingly.
- Add Javadoc comments for better understanding of each type, method, and field.
work on #73
ALM
-
move to next release 1.4.0-beta1 (083453711d86386)
-
bump to next SNAPSHOT (a4bbe3dbbaf71fd)
-
bump to next SNAPSHOT (bb7e66dcf22d0b4)