Update Logs
If something in Roadmap is finished, or I fixed some bugs/implemented some new features/wrote some Wiki, I'll put them here.
2023-07-09
- Supported
condition
(c4d3d92).
2023-07-02
- Implemented
replaceAll
manually, for better compatibility ([0e87296]https://github.com/carefree0910/carefree-drawboard/commit/0e8729675e4ea4dd35442c802ba202d4ebd3722b). - Enhanced
MetaPlugin
(9ab56c8). - Supported
minW
,minH
,maxW
,maxH
(2731144). - Enhanced
ColorPicker
(b31893a, f73d981, 72c811e).
2023-06-25
- Introduced
image_group
template (5433f5d). - Supported specifying
expandPivot
(a49b6eb). - Supported recognizing
pivot
whenuseModal
(c27673d). - Supported using ratio (e.g.,
0.8
) forw
&h
(cea22f5).
2023-06-18
- Supported
custom_embeddings
for the Live Demo (eea5e24). - We'll now use
sqlite
to manage projects (cf0cf3e). - Fixed & Enhanced
workflow
stuffs for the Live Demo (c1d4cbd, 4cbb002, etc.).
2023-06-11
- Documentation is now available!
- Now trace stack will be logged when exception (bbdb810).
Which is extremely useful for debugging.
- Implemented
workflow
stuffs for the Live Demo (260f7c7, 20cf989, 9772184, etc.). - Allowed
None
response (f905b34).This is useful when we detect exceptions during
process
and decide to manuallysend_exception
. In which case, we can returnNone
at theprocess
method, and the frontend will only toast the exception message without doing anything else. - Enhanced
TextField
(a35fe10).Now we can select a
TextNode
as the binding of theTextField
, in which case the Injections will be maintained automatically.
2023-06-04
- Simplified
MetaPlugin
(8710160). - Optimized rendering of
Floating
(2b25baa).This is a significant and important optimization, which makes sure that the rendering stay smooth even tens of plugins are used.
- Supported
no_offload
(8cb2fc8). - Supported specifying
requirements.txt
(3cd9b39). - Supported hot-reloading options of
I18NSelectField
(201b3bc).
2023-05-28
- Supported adding
frame
(056e006). - Supported
keepOpen
(8272f26), which can let certain plugins stay expanded even if we click on the drawboard 🎨. - Bundled some icons to boost loading speed.
- Enhanced styles of
CFSelect
&CFTextarea
, to make them more consistent with other components. - Allowed to load the page after timeout (d01041b).
- Unified
CFFormLabel
(d2a8f8d). - Supported
ImageField
(8555c33, 75a5c11). - Implemented
I18NSelectField
(ddde4d8). - Implemented
BasicEditorPlugin
(1cae642).Now we can adjust
x
,y
,w
,h
of the selectedNode
elegantly.
2023-05-21
- Improved accessibility, now we can use runtime environment variables, so deployment will be much easier.
Beware that these variables shoud NOT contain any sensitive information, since they will be exposed to the frontend!
- Supported
IListField
(392c027). - Supported editing text color in
TextEditor
(010d7e5). - Supported editing the text align in the
TextEditor
(6e3e7b0). - Supported 'input & search' in
SelectField
(6d6073d). - Fixed project management system with
FileLock
(97ca37d and some following commits). - Supported
I18N
inISelectField
(607fef4). - Implemented
PythonMarkdownPlugin
(d33e097).As the name indicates, it can show a piece of markdown sent from the backend.
- Implemented
ShortcutsPlugin
(5fef73b).Now there will be a bulb at the
lb
(left bottom) corner of the drawboard. After you click it, you can see most of the shortcuts.
2023-05-14
- Implemented
ISelectLocalField
(102a887). - Extracted some common settings to the env (see Environment Variables for more details).
- Wrote Design Details of the plugin system.
- Supported
requirements
¬ification
(b295e03). - Improved accessibility, now the
--unified
mode can let you deploycarefree-drawboard
🎨 to your own server with zero modifications. - Improved user experience by hiding plugins when users:
- clicked on the drawboard 🎨.
- pressed the
Esc
key.
2023-05-07
- Supported
PluginGroup
(which is also a plugin), so we can manage plugins better (605eabd). - Introduced
nodeConstraintRules
system (ecaf5fd). - Supported socket-based constraints (i.e., send socket message to the backend to see if we should show the plugin or not) (8dd450b).
This serves as a universal fallback.
- Replaced some events with mobx store, which improves the performance/maintainability quite a lot.
- Implemented
cfdraw build
CLI, which can be used to build the frontend assets. - Supported
extra_responses
.So we can deliver some extra data to the frontend.
- Implemented
send_exception
.So we can send exceptions to the frontend more easily.
- Optimized the positioning system (a6e8501 and some commits around it).
- Supported
i18n
stuffs at backend side (e3c8ce4).So we can specify the
label
,tooltip
, and (almost) any other messages in an internationalized way at backend side (e.g.,Python
). - Implemented a (simple)
ChatPlugin
(cbe5911
). - Unified
useOnMessage
(f2dd7cf), so now implementing new plugins will be much easier and much less error-prone. - Implemented the
carefree-creator
example.And therefore launched the first public available, production ready, AI magics powered drawboard 🎨 (click here to try it out).
- Supported adding blank canvas.
Which is essential for techniques such as
outpainting
. - Implemented
ISelectLocalField
(102a887).
2023-04-30
- Some nice
CircularProgress
are introduced atpending
status &working
status (6899641). - Internal plugins (e.g.,
sync
) can now bypass theRequestQueue
and be executed immediately (5f60042). - Introduced
ElapsedTimes
system (ceab3d4). - Supported
tooltip
for plugins (ae5d114). - Upgraded general styles (c544865, a6e6f38).
- Fixed known issue: interactions on the drawboard 🎨 will be interrupted if the mouse slipped pass any plugin (be1b433).
- Supported specifying more settings via backend (i.e.,
Python
) (c4853b2). - Some meta data will now be injected to the
PNG
images processed by the drawboard 🎨 (cec4195, 5cfb178). - Introduced authentication system (now will only check for
userId
). - Introduced loading page (2029161).
- Supported deleting projects (56edbe5).
- Introduced Auto Save.
- Supported guarding the loading page until target resources are loaded (See Loading Page for more details).
- Supported icon loading animation (1a16b2d).
- Supported specifying
numRows
(815409f).So we can make some fields (typically, the
ITextField
) larger, which may provide better user experience. - Supported
IBooleanField
&ISelectField
(2cd8c95, 0c28ff3).
2023-04-23
- Hosting is now supported.
- Google Colab example is now provided.
- Tornado integration is now supported.
- Removed
tornado
stuffs and replaced them withFastAPI
.Rapid changes, huh?
http
stuffs are deprecated,socket
stuffs are ready.RequestQueue
is implemented (pretty nicely).
2023-04-16
- Implemented
SyncSocketPlugin
&useSyncPython
(4c06392).- Now we can send Definitions & Settings from
Python
toReact
via WebSocket instead of file system. - This also ease the migration from
Python
to other programming languages, because all communications between frontend and backend are now based on a static set of APIs (see Extensibility for more details).
- Now we can send Definitions & Settings from
- Somehow wrote a brief guide on how to write plugins in other programming languages (the Extensibility section).
- Supported
Hide All
/Show All
plugins (516b0f3).