Releases: writer/writer-framework
v0.8.2
What's Changed
- feat:
question
endpoint usage forwriter.ai
by @mmikita95 in #666 - feat: improve messaging when trying to open a folder where a project hasn't been initialized - WF-95 by @FabienArcellier in #648
- chore: increase github action runner size by @FabienArcellier in #668
- feat: Small UX improvements across workflows, Hello app and Reuse by @ramedina86 in #669
- feat: New icons by @ramedina86 in #671
Full Changelog: v0.8.1...v0.8.2
v0.8.1
What's Changed
- fix: raw docstrings for
subscribe_mutation
&parse_state_variable_expression
by @mmikita95 in #566 - chore: fail gracefully when ui.py was not generated by @mmikita95 in #565
- fix: custom component name should be constrained explicitely - WF-52 by @FabienArcellier in #550
- feat: store writer framework IDE into project directory instead of ui.json - WF-43 by @FabienArcellier in #526
- test(ui): add E2E test for JSON viewer. WF-32 by @madeindjs in #515
- feat(ui): handle keyboard navigation on autocomplete. WF-44 by @madeindjs in #558
- feat: Workflows foundations by @ramedina86 in #554
- chore: docs generators run only for core components - WF-62 by @FabienArcellier in #560
- fix: support for floating numbers and large numbers on the slider by @FabienArcellier in #562
- feat: configure slack notification on documentation change by @FabienArcellier in #569
- feat: Workflow tools by @ramedina86 in #570
- Initial version of sample apps library by @samjulien in #559
- feat: allow CLI to find a different port - WF-76 by @FabienArcellier in #577
- feat: pick up the URL variables at the start of the app - WF-55 by @FabienArcellier in #538
- feat: Workflows tools 2 by @ramedina86 in #579
- chore(e2e): migrate
ui.json
of E2E presets by @madeindjs in #575 - chore: prevent workflows tree to be sent during run mode - Wf 74 by @FabienArcellier in #581
- feat: the WF engine should resolves escaped variables - WF-53 by @FabienArcellier in #568
- feat: Workflows tools 3 by @ramedina86 in #586
- store writer framework ide files - WF-67 by @FabienArcellier in #583
- feat!: AI module tools by @mmikita95 in #587
- chore: Merge for release by @ramedina86 in #588
- docs: small mistake into authentication documentation by @FabienArcellier in #589
- feat: store writer framework ide files by @FabienArcellier in #590
- fix(ui): fix number format for the input slider by @madeindjs in #572
- fix(ui): handle visibility from object prop for
CoreTab
. WF-73 by @madeindjs in #580 - fix(ui): load initial value for Multiselect input - WF-66 by @madeindjs in #571
- docs: update ai-module.mdx by @mmikita95 in #592
- fix: minor QOL updates for function tools by @mmikita95 in #593
- feat: Workflow tools 4 by @ramedina86 in #594
- chore: Merge for release by @ramedina86 in #595
- fix(ui): make
CoreSwitchInput
reactive to state change - WF-81 by @madeindjs in #574 - fix: switch to
create_function_call
function due to lack of defaulttype
by @mmikita95 in #598 - fix(ui): force auto with inside
CoreHorizontalStack
- WF-58 by @madeindjs in #600 - feat(ui): Implement range selector. WF-4 by @madeindjs in #573
- feat(ui): add copy to clipboard for JSON viewer - WF-25 by @madeindjs in #582
- chore(ui): clean Eslint error - WF-48 by @madeindjs in #584
- fix: automatic documentation release - WF 87 by @FabienArcellier in #591
- feat(deploy): filtering symlinks from deployment package by @raaymax in #604
- docs: Refine Framework Quickstart guide with streamlined steps, clearer instructions, and screenshots by @ajot in #596
- fix(ui): adapt cursor of
CoreText
if attached click event - WF-59 by @madeindjs in #602 - feat(ui): introduce collapsible section + harmonize collapser - WF-47 by @madeindjs in #599
- chore(ui): use Vue.js
readonly
for core - WF-51 by @madeindjs in #585 - feat: add deploy alias by @raaymax in #597
- feat(ui): add allow file type for
CoreFileInput
- WF-41 by @madeindjs in #601 - feat(deploy): better feedback after deploy fail by @raaymax in #605
- fix: message history for FC by @mmikita95 in #607
- feat: Workflows function calling support by @ramedina86 in #603
- chore: Merge for release by @ramedina86 in #609
- feat: Frontend reorg, code and log panels by @ramedina86 in #612
- chore(ui): move
JsonViewer
in shared components - WF-98 by @madeindjs in #610 - chore(ci): fix Node version for E2E by @madeindjs in #606
- fix: Use shared JSON viewer by @ramedina86 in #613
- chore: Merge for release by @ramedina86 in #614
- chore: Workflows refinements by @ramedina86 in #617
- chore: Merge for release by @ramedina86 in #618
- feat: Implement Data frame editor.WF-66 by @madeindjs in #529
- chore(ui): move custom components - WF-63 by @madeindjs in #615
- chore(ui): split the bundle for
BuilderApp
- WF-96 by @madeindjs in #616 - fix(ui): fix type validation for
SharedJsonViewer
- WF-103 by @madeindjs in #623 - feat(ui): add an option
hideRoot
forCoreJsonViewer
- WF-104 by @madeindjs in #624 - feat: Workflows zoom, navigator, tooltip by @ramedina86 in #630
- chore: Merge for release by @ramedina86 in #631
- feat: Add streaming flag by @ramedina86 in #633
- chore: Merge for release by @ramedina86 in #634
- chore: clean up core - WF-80 by @FabienArcellier in #637
- fix: change logic for finish reason processing by @mmikita95 in #636
- chore(ui): armonize loading state of
CoreChatBot
- WF-88 by @madeindjs in #625 - chore: Refactor and workflows tests by @ramedina86 in #639
- feat: improve performance in writing wf project - WF-97 by @FabienArcellier in #627
- chore: Workflows tests and refactor 3 by @ramedina86 in #643
- fix(ui): display loader during async loading component by @madeindjs in #641
- fix: the process of saving project information stops properly in any condition - WF-114 by @FabienArcellier in #642
- feat: Add kg block by @ramedina86 in #644
- fix(WF-123): template apps have incorrect version after generation by @raaymax in #646
- chore: serialize tool calls messages with non-empty content by @mmikita95 in #622
- fix: register
set_token
mark to avoid pytest warnings by @mmikita95 in #654 - feat(ui): use
BuilderSelect
for handlers + implement Design System - WF-45 by @madeindjs in #638 - chore(ui): upgrade to Node v22 by @madeindjs in #651
- chore: increase github action runner size by @FabienArcellier in #656
- feat: add metadata for SEO and social media sharing - WF-77 by @FabienArcellier in #608
- chore(ui): remove
remixicon
- WF-106 by @madeindjs in #650 - chore(ui): improve hash parsing + setup unit test - WF-...
v0.7.4
What's Changed
- fix: custom stylesheet and js are not loaded after OIDC authentication by @FabienArcellier in #544
Full Changelog: v0.7.3...v0.7.4
v0.7.3
What's Changed
- feat: horizontal stack should expose field Content alignment (V) - WF-56 by @FabienArcellier in #549
Full Changelog: v0.7.2...v0.7.3
v0.7.2
What's Changed
- fix: npm run custom.dev run dev server instead of custom.dev by @FabienArcellier in #519
- feat(ui): implement new Slider. WF-37 by @madeindjs in #505
- feat(ui): harmonize CSS cursors. WF-35 by @madeindjs in #514
- feat(ui): add filter to
BuilderSidebarToolbar
. WF-42 by @madeindjs in #516 - feat: trigger a calculated property on mutation by @FabienArcellier in #496
- feat: checkbox for inversion of visibility value by @FabienArcellier in #512
- chore: Bump version by @ramedina86 in #527
- fix: getting the BaseControlBar import to AnnotatedText component by @polymorpheuz in #534
- feat: Feature flags by @ramedina86 in #533
- feat: Abstract components by @ramedina86 in #539
- fix: custom stylesheet and js are not loaded after OIDC authentication by @FabienArcellier in #536
- chore: Merge for release by @ramedina86 in #541
- fix: Fixes to datalist id by @ramedina86 in #542
- fix: add opportunity to customize unauthorization and callback actions by @yanomaly in #540
- chore: Merge for release by @ramedina86 in #543
New Contributors
Full Changelog: v0.7.0...v0.7.2
v0.7.0
What's Changed
- chore: improve UI consistency (padding, content align) by @FabienArcellier in #452
- docs: Implement writer framework documentation related to mintlify by @FabienArcellier in #465
- use middleware to intercept event handlers (global event, database management, ...) by @FabienArcellier in #471
- feat: Dataframe Markdown, Step go back by @ramedina86 in #475
- chore: Merge for release by @ramedina86 in #476
- fix: Dataframe maxheight by @ramedina86 in #477
- chore: Merge for release by @ramedina86 in #478
- fix: enable the server setup hook by default in a custom server by @FabienArcellier in #480
- feat: state autocompletion for builder settings fields by @raaymax in #383
- docs: local preview fix by @raaymax in #472
- chore(ui): use local fonts instead of CDN. WF-27 by @madeindjs in #487
- feat: setup
CoreTimeInput
. WF-8 by @madeindjs in #483 - feat: SDK Knowledge Graphs / Files support by @mmikita95 in #490
- feat: added warning if app already deployed by @raaymax in #470
- Add release notes generator tutorial and images by @samjulien in #492
- fix:
BaseSelect
handlenumber
value. WF-28 by @madeindjs in #481 - feat: implement
JsonViewer
widget by @madeindjs in #479 - tests: mock & integration tests for KG/Files SDK functionality by @mmikita95 in #495
- feat(ui): introduce
CoreColorInput
. WF-9 by @madeindjs in #486 - fix: Hide
CoreText
in preview if empty value. WF-20 by @madeindjs in #482 - chore: Merge for release by @ramedina86 in #491
- refactor: use click for CLI by @raaymax in #457
- docs: improve documentation to use writer instead of streamsync by @FabienArcellier in #474
- feat: implement editable dataframe to manage dataframe editor component by @FabienArcellier in #485
- fix(ui): fix
CoreDataFrame
download for big file. WF-39 by @madeindjs in #497 - feat(ui): allow empty name for
CoreMetric
. WF-38 by @madeindjs in #499 - fix: handle template in
BuilderFieldsKeyValue
. WF-31 by @madeindjs in #484 - feat(ui): add icon to
WdsTextInput
. WF-36 by @madeindjs in #511 - fix(ui): remove some overflow constraints by @madeindjs in #504
- fix(ui): avoid builder
textarea
H resizable. WF-40 by @madeindjs in #510 - fix: redirect after authentication on http://localhost without / by @FabienArcellier in #507
- feat(ui): improve
CoreFileInput
by @madeindjs in #494 - feat: Annotated Text component by @polymorpheuz in #462
- feat: AnnotatedText by @ramedina86 in #521
- feat: Applications generate content support in AI module by @ramedina86 in #522
New Contributors
- @samjulien made their first contribution in #492
- @polymorpheuz made their first contribution in #462
Full Changelog: v0.6.1...v0.7.0
v0.6.1
Release that adds Basic Auth and improves stability. Notably, fixes #459
What's Changed
- fix: Dropdown bug by @ramedina86 in #461
- feat: implement authentication workflow using basic auth by @FabienArcellier in #446
- fix: Unauth template by @ramedina86 in #463
- chore: Merge for release by @ramedina86 in #464
Full Changelog: v0.6.0...v0.6.1
v0.6.0
Streamsync has been acquired by Writer and is now known as the Writer Framework. It'll remain open source under the same license (Apache 2.0).
We have made a few breaking changes:
- The PyPi package is now called
writer
. You should install this package and reference it to get the latest updates. - Built-in events now start with
wf-
. The editor will convert these automatically. - Remix Icons has been replaced by Material Icons. If you're using icons, you should replace the ids for Material Icons ids.
- Chatbot. The Chatbot has been reengineered to use state rather than
return
statements. This allows streaming and loading older conversations.
Thank you to everyone who has supported this project. The same people are still in charge of the project, we just have more resources to make this happen now, so expect exciting stuff!
What's Changed
- feat: register external modules to use its functions as event handlers by @mmikita95 in #372
- chore: adding warning about supported node version by @raaymax in #396
- docs: Minor fixes by @ramedina86 in #401
- fix: custom components not loading with cjs extension by @FabienArcellier in #406
- feat: reengineered chatbot to use conversation in state by @ramedina86 in #418
- chore: Design changes by @ramedina86 in #403
- refact: proposal for a new design arround component tree by @FabienArcellier in #367
- docs: add workflow to trigger mintlify in base repo by @rpmccarter in #417
- Feat ai by @ramedina86 in #420
- fix: Chatbot/new v-models by @ramedina86 in #421
- fix: vmodel issues by @ramedina86 in #422
- feat: ai by @ramedina86 in #423
- chore: Conversation supports SDK ChoiceMessage by @ramedina86 in #424
- !chore: chatbot payload adjustment by @ramedina86 in #426
- feat: ai by @ramedina86 in #427
- feat: Writer AI integration by @ramedina86 in #428
- feat: AI module by @mmikita95 in #415
- chore: Merge for release by @ramedina86 in #429
- chore: Merge for release by @ramedina86 in #430
- chore: AI docs & fixes by @mmikita95 in #431
- feat/implement authentication workflow on streamsync by @FabienArcellier in #416
- chore: Rename to Writer Framework by @ramedina86 in #433
- chore: Merge for release by @ramedina86 in #434
- docs:
init_handlers
usage by @mmikita95 in #402 - fix: AI QOL updates by @mmikita95 in #435
- feat: cli deploy command by @raaymax in #412
- fix: Audit and fonts by @ramedina86 in #436
- fix: deploy fails when .gitignore is missing by @raaymax in #437
- feat: added undeploy command by @raaymax in #438
- chore: verbose error for missing API key by @mmikita95 in #440
- feat: New app templates by @ramedina86 in #441
- feat: Social gen/text demo template by @ramedina86 in #442
- fix: Style fixes by @ramedina86 in #443
- chore: Merge for release by @ramedina86 in #444
- fix: cls init as default prevents providing key manually by @mmikita95 in #445
- tests: AI module by @mmikita95 in #447
- feat: Minor changes prerelease by @ramedina86 in #448
- chore: Merge for release by @ramedina86 in #449
- feat(deploy): logs and ability to define env variables for deloy by @raaymax in #451
- chore: Version bumps by @ramedina86 in #453
- chore: Merge for release by @ramedina86 in #454
New Contributors
- @rpmccarter made their first contribution in #417
Full Changelog: v0.5.0...v0.6.0
v0.5.0
What's Changed
- fix: Empty pagination list count by @oandalib in #362
- docs: added docs custom tag to vue sfc and file path for components.json by @raaymax in #364
- generate a documentation page for every components by @FabienArcellier in #350
- feat: provision app templates during publishing by @FabienArcellier in #365
- refactor: monorepo structure cleanup by @raaymax in #286
- fix: import for State, for using State Schema, is missing in streamsync highlevel import by @FabienArcellier in #370
- ci: added ruff linter by @raaymax in #371
- chore: upgrade npm packages by @raaymax in #373
- feat: added reusable component by @raaymax in #302
- ci: fixing e2e workflow by @raaymax in #375
- feat: setting up storybook by @raaymax in #376
- fix: generation of documentation for components that fails on npm docs:build by @FabienArcellier in #386
- feat: capture the component that trigger an event in context by @FabienArcellier in #368
- feat: replace mode for UI manager by @mmikita95 in #374
- chore: exclude generated files as storybook and app_templates from repository by @FabienArcellier in #387
- fix: adding "owned_only" flag for to_dict method of DependentComponentTree by @mmikita95 in #393
- fix: Switch input load bug by @ramedina86 in #391
- fix: Disable frontend messages after save by @ramedina86 in #394
- fix: components are missing into documentation generation by @FabienArcellier in #395
- chore: (minor) extending the Evaluator regex by @mmikita95 in #289
- chore: Merge for release by @ramedina86 in #397
- fix: include ui.py and app_templates in pypi build by @FabienArcellier in #398
- chore: Merge for release by @ramedina86 in #399
- chore: Increment version to 0.5.0 by @ramedina86 in #400
New Contributors
Full Changelog: v0.4.0...v0.5.0
v0.4.0
Major Overhauls and Features:
Backend-driven UI: We've implemented massive changes across the board to support creating components with code.
Async Handlers: Introduction of asynchronous handlers.
User-defined State Schemas / Type Safety for Apps: We now support user-defined state schemas, enhancing type safety for your applications. This feature ensures that your app's state management is both robust and error-free.
Support for Dataframe Interchange Protocol / Polars: Streamsync includes support for the Dataframe Interchange Protocol with a specific focus on Polars.
Enhancements and Fixes:
Bug Fixing: We've dedicated a significant amount of work towards identifying and fixing bugs to ensure a smoother user experience.
Quick Start Tutorial: A new Quick Start tutorial has been introduced to help new users get up and running with Streamsync.
New Components:
We're thrilled to introduce a range of new components to expand the capabilities of your Streamsync applications:
Link, Tags, Switch: New UI elements to enhance your app's interactivity and usability.
Chatbot Component: Introducing a Chatbot component, designed for creating your own chatbot interfaces within your applications. This component is provided without a backend, allowing for flexible integration into your existing systems.
MapBox and Google Maps: Leverage powerful mapping capabilities with either MapBox or Google Maps integration.
PDF and iFrame: Enhanced support for PDF viewing and iFrame integration, broadening the scope of content you can include in your apps.
Avatar: A new Avatar component to personalize user profiles and interactions within your apps.
Steps Component: We're excited to introduce the Steps component, a new addition designed to enhance navigational experiences within your applications. This component is ideal for guiding users through a sequence of tasks or processes, improving the overall user interaction and workflow clarity.
Rating Input: A new Rating Input component has been added to gather feedback directly within your applications. This interactive component allows users to rate products, services, or experiences, facilitating a straightforward way to collect valuable user insights and preferences.
What's Changed
- Expanding mutation test by @mmikita95 in #206
- Enabling deletion mutations by @mmikita95 in #214
- Minor fix for test_mutations by @mmikita95 in #224
- use poetry instead of setup tools as package manager by @FabienArcellier in #231
- Fix for escape sequence by @mmikita95 in #232
- docs: added missing images by @raaymax in #238
- Asynchronous handlers support by @mmikita95 in #229
- github action enforce pr continuous integration rules by @FabienArcellier in #236
- Update event-handlers.md by @mmikita95 in #234
- docs: added quickstart tutorial by @raaymax in #235
- fix: fastapi lifespan management with multiple apps at once by @FabienArcellier in #241
- fix: introducing a fixture for proper teardown by @mmikita95 in #242
- feat: added iframe component by @raaymax in #237
- feat: added pdf viewer component by @raaymax in #243
- docs(#245): docker image build python version lock by @raaymax in #246
- feat: added google maps component by @raaymax in #249
- chore: Add Code of Conduct by @ramedina86 in #251
- fix: pdf drag and drop issues by @raaymax in #250
- ci: added eslint checks for ui by @raaymax in #244
- refactor: move components to subfolders by category by @raaymax in #252
- chore: disable continuous integration on branch except for master and dev by @FabienArcellier in #256
- chore: linking ComponentManager to session by @mmikita95 in #248
- fix: custom components build properly on windows by @FabienArcellier in #228
- fix: added map type options to google maps component by @raaymax in #260
- feat: updated pdf component with highlights by @raaymax in #259
- fix: dynamically load pdf component by @raaymax in #265
- feat: added Mapbox component by @raaymax in #255
- feat: Chat, Step, Steps, RatingInput components by @ramedina86 in #271
- chore: prepare UI component handling for enhanced session and CMC integration by @mmikita95 in #258
- Docs fixes by @ramedina86 in #276
- fix: builder shortcuts visibility problem by @raaymax in #270
- feat: added link component by @raaymax in #266
- Add square barckets to evaluator regex by @gunnar-enerin in #257
- fix: dynamic loading of google maps by @raaymax in #280
- tests: frontend test framework setup with playwright by @raaymax in #268
- fix: drag and drop on itself removes component by @raaymax in #284
- fix: dynamic imports for dataframe component by @raaymax in #282
- perf: tiny bit faster pdf's goto page by @raaymax in #287
- ci: added cache for GH workflows by @raaymax in #285
- feat: chat file upload by @ramedina86 in #290
- fix: drop target highlighting is moved when the Settings bar is open by @raaymax in #283
- feat: Switch input component by @ramedina86 in #292
- feat!: core managed components functionality by @mmikita95 in #279
- feat: Tags component by @ramedina86 in #293
- style: added .editorconfig file by @raaymax in #295
- tests: parallel e2e tests runner by @raaymax in #294
- feat: Avatar component by @ramedina86 in #305
- feat: add serialiser for Polars using Dataframe Interchange Protocol by @FabienArcellier in #298
- style: .editorconfig with spaces for python by @raaymax in #300
- chore: updated github actions to use node 20 by @raaymax in #306
- fix: convert all content values to strings by @mmikita95 in #303
- refactor: added better types in ui.py by @raaymax in #301
- fix: send components to the frontend only upon update by @mmikita95 in #296
- chore: add init_ui method by @mmikita95 in #297
- feat: generating bindings for ui.py by @raaymax in #309
- chore: binding syntax by @mmikita95 in #310
- feat:declare optional schema on streamsync state by @FabienArcellier in #278
- fix: removed default values from ui.py by @raaymax in #318
- fix: added support for autocompletion on the low ui approach for pycharm by @FabienArcellier in #313
- fix: code managed component are missing on init_ui by @FabienArcellier in #321
- docs: code managed components by @mmikita95 in #320
- chore: check if ui binding is up to date in continuous integration by @FabienArcellier in #317
- fix: avoid removal of CMCs during ingestion by @mmikita95 in #323
- feat: added readonly settings for generated components by @raaymax in #316
- fix: logic for determining position by @mmikita95 in #324
- docs:...