Skip to main content

Update Logs

note

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

2023-07-02

2023-06-25

  • Introduced image_group template (5433f5d).
  • Supported specifying expandPivot (a49b6eb).
  • Supported recognizing pivot when useModal (c27673d).
  • Supported using ratio (e.g., 0.8) for w & h (cea22f5).

2023-06-18

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 manually send_exception. In which case, we can return None at the process 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 the TextField, 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 selected Node 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 in ISelectField (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 & notification (b295e03).
  • Improved accessibility, now the --unified mode can let you deploy carefree-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 at pending status & working status (6899641).
  • Internal plugins (e.g., sync) can now bypass the RequestQueue 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 with FastAPI.

    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 to React 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).
  • Somehow wrote a brief guide on how to write plugins in other programming languages (the Extensibility section).
  • Supported Hide All / Show All plugins (516b0f3).