fixes
This commit is contained in:
@@ -0,0 +1,6 @@
|
|||||||
|
--- HIGH PRIORITY
|
||||||
|
Being abble to :
|
||||||
|
Disable features / Enable it:
|
||||||
|
ie : thinking, deep search, etc...
|
||||||
|
|
||||||
|
Downloading models throught a catalog : ollama only
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
--- VERY HIGH PRIORITY
|
||||||
fait en sorte de pouvoir upload un avatar (Servir un cdn en local via fichier upload sur le serveur dans un dossier à côté de la codebase)
|
fait en sorte de pouvoir upload un avatar (Servir un cdn en local via fichier upload sur le serveur dans un dossier à côté de la codebase)
|
||||||
|
|
||||||
cdn comme sa
|
cdn comme sa
|
||||||
@@ -21,3 +22,13 @@ Rate-limit per change / per account de:
|
|||||||
file length maxi: 5MB
|
file length maxi: 5MB
|
||||||
|
|
||||||
SYSTEM DE CHANGEMENT DE MDP:
|
SYSTEM DE CHANGEMENT DE MDP:
|
||||||
|
Donc avoir une upload box, propre, adapative etc
|
||||||
|
|
||||||
|
---- MEDIUM PRIORITY
|
||||||
|
ADAPTATION MOBILE:
|
||||||
|
GÉRER LES MODALS, LES BOXES, LES BOARDING, LES CHAT BOXES AUSSI POUR PETIT ÉCRAN, ADAPTER LEUR WEBVIEW PORTAGE, DIALOG BOX, CONFIRMATON, TRAY CHANNELS SIDE LIST...
|
||||||
|
DRAG AND SNAP LIKE PHONES, SCROLLING FOR OPENGING/EXITING ETC..
|
||||||
|
|
||||||
|
--- LOW PRIORITY
|
||||||
|
Système de service mails aussi pour les comptes (optionel) pour recovery passwords, dans le page de login:
|
||||||
|
- Recover password with emails. smtp server,
|
||||||
|
|||||||
+14
-1
@@ -22,7 +22,20 @@ browser ──► Bun.serve (src/index.ts)
|
|||||||
are auto-titled from it.
|
are auto-titled from it.
|
||||||
4. Non-streaming → `driver.chat()` → JSON. Streaming → `driver.chatStream()`
|
4. Non-streaming → `driver.chat()` → JSON. Streaming → `driver.chatStream()`
|
||||||
→ SSE events `token` / `done` / `error`. The full reply is persisted after a
|
→ SSE events `token` / `done` / `error`. The full reply is persisted after a
|
||||||
successful stream (partial text + `[interrupted]` marker on failure).
|
successful stream; on error the partial text is kept as-is (no internal
|
||||||
|
markers). Server logs each stream open/done/abort per driver when
|
||||||
|
`DRIVER_DEBUG=true`.
|
||||||
|
|
||||||
|
Streaming guarantees (ChatGPT-style, no buffering):
|
||||||
|
|
||||||
|
- Tokens are forwarded via `controller.enqueue` the moment they arrive from the
|
||||||
|
LLM; disconnects are detected (`req.signal`, guarded `enqueue`,
|
||||||
|
stream `cancel()`) and propagated upstream via an `AbortController` passed as
|
||||||
|
`opts.signal`, so the model stops generating when the tab closes.
|
||||||
|
- `Bun.serve` runs with `idleTimeout: 0` — the default 10 s would kill slow
|
||||||
|
streams (cold model load, thinking pauses) mid-generation.
|
||||||
|
- Responses carry `X-Accel-Buffering: no` and the NixOS nginx vhost sets
|
||||||
|
`proxy_buffering off`, otherwise the proxy would buffer the whole reply.
|
||||||
|
|
||||||
## Database schema
|
## Database schema
|
||||||
|
|
||||||
|
|||||||
@@ -114,6 +114,10 @@ async function readJson(req: Request): Promise<{ ok: boolean; body: Record<strin
|
|||||||
const server = Bun.serve({
|
const server = Bun.serve({
|
||||||
port: config.port,
|
port: config.port,
|
||||||
hostname: config.host,
|
hostname: config.host,
|
||||||
|
// SSE chat streams can legitimately go silent for a while (cold model load,
|
||||||
|
// slow/thinking models). Bun's default 10s idle timeout would kill them
|
||||||
|
// mid-generation — disable it (0). Nginx in front has its own timeouts.
|
||||||
|
idleTimeout: 0,
|
||||||
async fetch(req, server) {
|
async fetch(req, server) {
|
||||||
const url = new URL(req.url);
|
const url = new URL(req.url);
|
||||||
const path = url.pathname;
|
const path = url.pathname;
|
||||||
|
|||||||
Reference in New Issue
Block a user