What's Changed
-
feat!: change the return value of python async send_cmd to async generator by @halajohn in #294
Introduces support for multiple results. There are two scenarios where multiple results may occur:
- A single destination extension responds with streaming results to the source extension.
- Multiple destination extensions respond with results to the source extension. Even if each destination extension only replies with a single result, it is considered multiple results from the perspective of the source extension.
-
fix: remove on_deinit_done by @wangyoucao577 in #300
-
feat!: add send_cmd_ex to distinguish send_cmd by @halajohn in #301
Refines the
send_cmd
behavior to maintain its most commonly used functionality: sending a command and waiting for a single result.For advanced use cases requiring more control, such as handling multiple results, the new
send_cmd_ex
method should be used. This addition ensures better flexibility while keeping the default behavior simple and intuitive. -
feat!: remove send_json by @halajohn in #307
Remove the
send_json
API, as its functionality can be fully replaced by using thesend_cmd
method in combination with theto_json
method of themessage
object. This simplifies the API surface while retaining the same capabilities. -
chore!: remove create_from_json by @halajohn in #311, #314, #315
Removes the
create_from_json
API, as its functionality can be fully replaced by using themessage
constructor in combination with thefrom_json
method. This streamlines the API by leveraging existing capabilities within themessage
class. -
feat!: remove _ten field from the output of
to_json
by @halajohn in #316, #318Reduces the visibility and accessibility of the
_ten
namespace, which is intended for internal use only. By minimizing external exposure to these fields, we mitigate the risk of internal structures being inadvertently relied upon by external code. All fields under the_ten
namespace now have corresponding explicit APIs to serve as their replacements, ensuring clear and safe access points. -
feat: update setting breakpoint tutorials by @plutoless in #317
-
feat!: addons only be loaded from the file system if they are explicitly specified in the app's
manifest.json
by @halajohn in #320, #324, #343Updates the addon loading behavior to improve efficiency and control. Addons will now only be loaded from the file system if they are explicitly specified in the app's
manifest.json
file. This ensures that only necessary addons are loaded, reducing overhead and potential conflicts. -
fix: fix memory leak of the using of dlerror by @halajohn in #328
-
docs: adding ten agent faqs by @cyfyifanchen in #331
-
docs: updating make command to task command by @cyfyifanchen in #332
-
feat: set thread name for debugging purpose by @halajohn in #329
-
docs: updating sections by @cyfyifanchen in #335
-
chore!: remove
extension_group
relevant interface API by @halajohn in #334Refines the external API by hiding or removing APIs related to
extension_group
, as it is currently intended for internal use only. This change simplifies the external API surface and reduces unnecessary complexity for external users. -
feat: expand the implementation of extension tester to allow it to be used for testing the graph by @sunxilin in #296
-
fix: catch exception in async python extensions by @sunxilin in #340
-
feat!: remove C++
get/set_property_async
API by @halajohn in #338Refines the
ten_env
API by removing all asynchronous interface APIs forget_property
andset_property
. These methods now have clearly defined synchronous semantics and behavior. The asynchronous implementations will remain internal, enabling the external synchronous APIs to leverage them for improved performance and streamlined usage. This change ensures a more efficient and consistent API experience. -
feat!: provide error_handler in send_data/A/Vframe by @sunxilin in #341, #344, #358, #355
Updates the
send_data
,send_audio_frame
, andsend_video_frame
APIs to better reflect their inherently asynchronous nature. The original API design did not adequately convey their asynchronous behavior. To address this, asynchronous callbacks have been added, making the asynchronous behavior explicit and improving the clarity and usability of these APIs. -
feat!: load go addons through registration function by @halajohn in #346
-
feat!: finalize new addon registration flow for C++/go/python by @halajohn in #348, #342
Refactors the addon registration process from a single-phase approach to a two-phase approach. Most of the original registration steps are now concentrated in the second phase, which is actively invoked by the TEN runtime. This change allows addons to perform their registration within the execution context of the TEN runtime, giving the TEN runtime greater control during the addon registration process.
-
feat: enhance error handling for unset env variables in property.json by @halajohn in #351
-
fix: read float type property, but int value from json by @halajohn in #350
-
feat: refine behavior when get property with incorrect type by @halajohn in #353
-
chore: remove more _ten namespace directly accessing by @halajohn in #362, #363
-
fix: make
return_xxx
truly async in python by @sunxilin in #361
Full Changelog: 0.4.2...0.5.0