76 Commits

Author SHA1 Message Date
Muhammad Labeeb
24356e455d used flexbox 2025-02-28 12:45:45 +01:00
Muhammad Labeeb
a18e85a41c updated sidebar 2025-02-28 12:45:45 +01:00
Régis Behmo
23abb818eb Install & upgrade plugins, update indices 2025-01-10 16:04:23 +01:00
Régis Behmo
cb7edcea61 Plugin description converted to html 2025-01-10 15:47:28 +01:00
Régis Behmo
2665eab5e1 fix: logs scrolling 2025-01-10 15:27:17 +01:00
Régis Behmo
10e8169b4e fix logging to stdout and to file 2025-01-10 15:10:21 +01:00
Régis Behmo
fa34d29a79 Crude "local launch" button 2025-01-09 18:51:08 +01:00
Régis Behmo
8a6a54b04d Crude plugin store display 2025-01-09 18:51:08 +01:00
Régis Behmo
db2b205ff7 Config set/unset
Also, a little refactoring.
2024-12-20 16:09:51 +01:00
Régis Behmo
a3361ed71f Turns out, we need the project root and config... 2024-12-20 15:29:50 +01:00
Régis Behmo
7982ba96db fix: enable/disable/enable plugin
This fix is possible thanks to a change in tutor core.
2024-12-20 10:59:07 +01:00
Régis Behmo
a182556872 refactor, start implementation of config in frontend
There is an issue with plugin enable/disable/enable. Plugin modules are
not reloaded, because of Python import cache. It's OK, we can probably
resolve this.
2024-12-19 16:47:54 +01:00
Régis Behmo
370968544a chore: remove useless shutdown management code
Once we figure out how to bypass this python bug, we'll restore some of
it.
2024-12-19 14:55:52 +01:00
Régis Behmo
2281082cf8 feat: favicon 2024-12-19 14:55:46 +01:00
Régis Behmo
556f0bf8f3 Unable to interrupt a running server...
I'm quitting, waiting for the upstream issue to be resolved.
2024-12-19 14:51:43 +01:00
Régis Behmo
0565781c15 wip: attempt to replace websockets by SSE
Websockets were unnecessary, as we only need 1-way communication.
Instead, we switched to server-sent events. But there are a couple of
problems:

1. We still can't stop the server while a websocket connection is open
2. SSE make it difficult to format messages

So this is not a big win for now...
2024-12-18 12:29:19 +01:00
Régis Behmo
a2e3018de4 fix: working thread API
There is always a single thread running at any time, thanks to the
TutorCliPool.
2024-12-07 12:30:13 +01:00
Régis Behmo
ceac2aaf59 better thread management and kill on reload
It's not all working yet, though...
2024-12-06 22:49:37 +01:00
Régis Behmo
a4b046db07 feat: store tutor logs in temporary files 2024-12-05 17:28:51 +01:00
Régis Behmo
bdfecd5066 chore: simplify by removing useless ajax call 2024-12-05 16:40:01 +01:00
Régis Behmo
b7ff461da2 fix: refactor tutor cli 2024-12-05 16:36:44 +01:00
Régis Behmo
2c113f5267 fix: type tests 2024-12-05 15:56:11 +01:00
Régis Behmo
34028c0e7c working prototype
Now there is a lot of TODO items remaining...
2024-12-05 15:23:46 +01:00
Régis Behmo
35554c2cc2 Working PoC of calling tutor asynchronousl
This is ugly, though, because we are calling tutor via subprocess.
Instead, we should be calling cli() in a separate thread.
2024-11-27 11:24:51 +01:00
Régis Behmo
ee8c9c4362 replace fastapi by Quart
FastAPI is mostly uvicorn+starlette. As such, the documentation is
spread over multiple places. Also, pydantic parsing of arguments is a
pain to work with. Since we don't need powerful performance, we switch
to Quart. Quart is preferred over Flask because of its async
capabilities, which we need for log streaming in websockets.

In progress: execute tutor commands and stream logs.
2024-11-21 18:06:05 +01:00
Régis Behmo
46222154da 🌅 2024-11-20 10:38:12 +01:00