Releases: TEN-framework/ten_framework
0.6.1
This version introduces several major features
-
Node.js Support: Currently, only C++/Node.js extensions are supported within the same Node.js process. In the future, support will be extended to include C++/Go/Python/Node.js extensions within the same process.
-
Dynamic Loading of Extensions: Even if there are n extensions under
ten_packages/
, only the extension folders that are used in the startup graph will be loaded. -
Local Dependency Support: The
dependencies
field inmanifest.json
now supports local dependencies, specified using thepath:
field.
What's Changed
- feat: cleanup all addons when app stop by @halajohn in #476
- chore: refine addon register function by @halajohn in #477
- chore: refine public interface API by @halajohn in #478
- refactor: refine addon mechanism by @halajohn in #479
- refactor: refine addon mechanism by @halajohn in #480
- feat: load python extension addons dynamically by @halajohn in #481
- fix: contextMenu and popup style by @shczhen in #482
- fix: editor context menu and popup by @shczhen in #484
- feat(fe): refine app folder by @shczhen in #464
- feat: add --local-install-mode of tman install command by @halajohn in #483
- feat: create ten_addon_loader_t struct by @halajohn in #485
- refactor: refine addon_loader mechanism by @halajohn in #486
- feat: nodejs binding by @sunxilin in #385
- chore: test asan by @halajohn in #490
- feat: support return result in tester by @sunxilin in #494
- refactor: rename all callback_info_t to ctx_t by @halajohn in #496
- refactor: refine addon registration process by @halajohn in #498
- refactor: refine addon mechanism by @halajohn in #499
- feat: enable multiple pytest cases in python standalone testing mode by @halajohn in #501
- fix: add test cases for d/a/v in go by @sunxilin in #497
- feat: enable dynamic loading in Python main app by @sunxilin in #502
- chore: upgrade msgpack and nlohmann::json by @halajohn in #503
- feat: add local dependency support by @halajohn in #505
- refactor: add more logic for local dependencies by @halajohn in #506
- feat: add tman create command by @halajohn in #507
Full Changelog: 0.6.0...0.6.1
0.6.0
What's Changed
-
feat!: do not need to specify extension_group in graph connections by @halajohn in #452
Previously, it was necessary to specify the "extension_group" within the graph's connections. This is no longer required. You can simply remove the "extension_group" field. It is important to note that no changes are needed under the nodes field; "extension_group" can still be specified there.
-
refactor: refine rust codes in tman and ten_rust by @halajohn in #455
-
feat: update doc for ten agent project structures by @plutoless in #462
-
feat: enable go build script to handle symbolic link by @halajohn in #461
-
feat: add extension doc by @plutoless in #463
-
docs: updating getting started page and overview page by @cyfyifanchen in #466
-
feat: add dir-list tman designer endpoint by @halajohn in #468
-
fix: split the handling of / and /api/ of tman designer by @halajohn in #469
-
docs: project structure by @plutoless in #467
-
docs: refine project structure by @plutoless in #470
-
docs: fixing links in TEN Agent by @cyfyifanchen in #472
-
feat!: replace throwing exception with returning error in Python by @sunxilin in #456
This is a new concept. If
send_xxx
fails because a destination was not specified, it is not considered a serious error. Therefore, in such cases, the error details will be provided through the second parameter of the return value. Other errors are still considered serious and will continue to raise exceptions. -
docs: update dev environment doc by @plutoless in #473
-
fix: return None type in return_xxx async api in Python by @sunxilin in #475
Full Changelog: 0.5.3...0.6.0
0.5.3
What's Changed
- fix: make PkgInfo hash and eq consistent by @halajohn in #427
- chore: refine the usage of PkgIdentity by @halajohn in #429
- refactor: abstract pkg_basic_info concept by @halajohn in #431
- chore: fix rust clippy warnings by @halajohn in #432
- refactor: remove unnecessary trait for pkg_info by @halajohn in #434
- feat: tman fe refactor by @shczhen in #433
- chore: add more test cases by @halajohn in #435
- docs: spelling examples by @shaxiaozz in #437
- chore: refine ten_runtime smoke test folder structure by @halajohn in #436
- test: add more test cases by @halajohn in #438
- chore: enable tman designer frontend build flow by @halajohn in #440
- refactor: refine RegistryPackageData in tman by @halajohn in #441
- refactor: refine RegistryPackageData in tman by @halajohn in #442
- refactor: refine ten_rust data structure by @halajohn in #443
- refactor: refine tman & ten_rust data structure by @halajohn in #444
- feat: add open app base folder in tman designer by @halajohn in #445
- feat: add
tman run
mechanism by @halajohn in #446 - feat: add tman check manifest-json & check property-json command by @halajohn in #447
- feat: add tman modify graph by @halajohn in #448
- chore: remove unused codes by @halajohn in #449
- feat: minimize the log count when send messages without destination i… by @halajohn in #450
- feat: users can pass command line arguments to tman run by @halajohn in #451
New Contributors
- @shczhen made their first contribution in #433
- @shaxiaozz made their first contribution in #437
Full Changelog: 0.5.2...0.5.3
0.5.2
What's Changed
- chore: fix cython compile script by @sunxilin in #396
- feat: add more tman designer logics by @halajohn in #397
- chore: refine building script by @halajohn in #400
- feat: embed tman designer frontend to tman by @halajohn in #398
- chore: refine tman dependencies by @halajohn in #401
- chore: refine rust dependencies by @halajohn in #402
- feat: add 32-bit linux CI target by @halajohn in #407
- feat: add save file mechanism in frontend by @halajohn in #408
- feat: rename designer variable by @halajohn in #411
- feat: add more tman designer UI logic by @halajohn in #413
- feat: demo/playground doc by @plutoless in #414
- feat: doc update for ten-agent playground by @plutoless in #415
- feat: added functionality to allow users to select a graph by @halajohn in #416
- feat: add set-base endpoint into tman designer backend by @halajohn in #419
- feat: add open app base dir functionality by @halajohn in #420
- chore: refine open app folder popup by @halajohn in #424
- fix: downgrade the log level for sending failure due to unconnected by @sunxilin in #423
Full Changelog: 0.5.1...0.5.2
0.5.1
What's Changed
-
chore: organize the internal APIs of the C++ binding to ensure they are all private by @halajohn in #368
-
feat: refine remote registry operation in tman by @halajohn in #370
-
chore: refine gtest dependencies of default_extension_cpp by @halajohn in #371
-
docs: updating LF issue on windows by @cyfyifanchen in #373
-
feat: clean up the pytest ci flow so that GitHub can launch pytest case by @sunxilin in #365
-
feat: detect predefined_graphs with the same name by @halajohn in #375
-
feat: enable ten_runtime pytest on windows by @halajohn in #376
-
feat: enable go/python binding on mac/win by @halajohn in #378
-
feat: add napi-header to third-party packages by @sunxilin in #382
-
docs: wording change by @cyfyifanchen in #383
-
feat: remove memory checking disabling in python integration test by @halajohn in #384
-
docs: updating wording and getting rid of graph designer section by @cyfyifanchen in #387
-
docs: updating overview of ten agent by @cyfyifanchen in #388
-
docs: removing missing code and updating code title by @cyfyifanchen in #389
-
fix: bugfix for send_xxx in extension_tester by @sunxilin in #393
-
refactor!: replace to/from_json with get/set_property_to/from_json by @halajohn in #394
Streamline the API and prepare for future support of getting/setting properties in object/array types.
-
feat: provide a way to set property during testing by @sunxilin in #395
Full Changelog: 0.5.0...0.5.1
0.5.0
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
0.4.2
What's Changed
- chore: remove protocol context relevant codes by @halajohn in #274
- chore: remove codes by @halajohn in #277
- feat: print log with exception info in async extension and abort by @sunxilin in #276
- refactor: remove unused codes on closeable_t by @halajohn in #279
- chore: add logic for ten_enable_clean_build by @halajohn in #280
- chore: add more ten_rust_cargo_clean targets by @halajohn in #281
- feat: add codes by @halajohn in #282
- feat: add create extension with predefined type docs by @plutoless in #285
- feat: support retry mechanism in integrated protocol and remove ten_sleep in smoke tests by @sunxilin in #283
- feat: add ten_manager test cases by @halajohn in #287
- fix: refine codes by @halajohn in #288
- fix: refine codes by @halajohn in #290
- fix: empty property in msg by @leoadonia in #291
- feat: dump extension name in c++ exception handler by @halajohn in #292
New Contributors
- @plutoless made their first contribution in #285
Full Changelog: 0.4.1...0.4.2
0.4.1
What's Changed
- fix: increase the retry interval time & delay http request in test cases by @sunxilin in #263
- chore: 1. remote_t must be created with connection_t 2. add more test… by @sunxilin in #259
- fix: memory leak if the value is an empty string by @leoadonia in #262
- feat: ensure some ten_env call timing by @halajohn in #264
- fix: bugfix for starting cross-app predefined graph by @sunxilin in #257
- chore: rename cb functions in protocol by @sunxilin in #266
- fix: add codes to address this issue. by @halajohn in #272
Full Changelog: 0.4.0...0.4.1
0.4.0
What's Changed
- chore: refine error message if schema is invalid, add the invalid schema path by @leoadonia in #195
- docs: how does interrupt work in ten agent by @wangyoucao577 in #206
- docs: add link for how does interrupt work by @wangyoucao577 in #207
- fix: refine codes of async block in tman by @halajohn in #210
- fix: bugfix for is_cmd_connected and is_property_exist in Python binding by @sunxilin in #211
- refactor: change some internal fields to ten_value_t and implement loop_all_fields functions by @sunxilin in #184
- feat: add msg conversion in graph by @leoadonia in #202
- chore: add type for serde_json::from_str in tman by @halajohn in #218
- chore: remove log.py by @halajohn in #219
- refactor: refine codes by @halajohn in #222
- fix: refine codes by @halajohn in #224
- docs: updating default async python to hello world tutorial by @cyfyifanchen in #223
- refactor: convert the protocol creation api to pure async operation by @sunxilin in #220
- chore: remove unused get/put_field_json functions by @sunxilin in #221
- feat: add conflict error information to tman by @halajohn in #230
- add event handling sample by @TomasBack2Future in #231
- fix: add some logs if env is not found by @leoadonia in #232
- refactor: make ten_addon_create_instance_async internal usage by @sunxilin in #233
- feat: add color to log by @halajohn in #237
- fix: fix ten_string_append issue by @halajohn in #240
- fix: conflicted error msg by @leoadonia in #235
- feat: a switch to enable/disable ten_runtime depends on ten_rust by @leoadonia in #242
- refactor: simplify the msgpack protocol implementation by @sunxilin in #225
- feat: auto on_xxx_done in Python async extension by @sunxilin in #239
- feat: add doc for msg_conversion in dev server by @leoadonia in #243
- fix: fix ten_string_append issue by @halajohn in #244
- fix: app is localhost in graph from runtime by @leoadonia in #245
- chore: add ci job for building ten_runtime without ten_rust by @leoadonia in #248
- refactor: enhance go binding by @halajohn in #250
- feat: add more standalone testing codes for C++/python by @halajohn in #251
- feat: add immediately return result mode by @halajohn in #252
- feat: add immediate return result by @halajohn in #254
- Feat--add-each_ok_and_error-return-policy by @halajohn in #255
- fix: invalid graph by @leoadonia in #249
New Contributors
- @TomasBack2Future made their first contribution in #231
Full Changelog: 0.3.1...0.4.0
0.3.1
What's Changed
- fix: addons in dev test by @leoadonia in #173
- fix: graph deserialization by @leoadonia in #174
- docs: updating ten_agent_dev from astra_agents_dev by @cyfyifanchen in #182
- docs: add graph check by @halajohn in #179
- feat: refine error message in dev server by @leoadonia in #183
- fix: crash if env not set by @leoadonia in #189
- feat: add retry to interacting remote registry by @halajohn in #198
- feat: add resume-download in tman by @halajohn in #203
Full Changelog: 0.3.0...0.3.1