[Feature] A working keyless local thread store (follow-up to #73)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- postgresql, typescript
- Ambito
- backend, database, documentation
Direzione di ricerca
Start with apps/server/src/standalone/, the Hono thread routes, and the existing configuration and runner tests. The relevant suites cover AgentRunner, the chat_threads, chat_runs, and chat_events stores, Postgres/PGlite persistence, SSE recovery, locking, and the documented routes in docs/STANDALONE.md and docs/STANDALONE-THREADS.md. Completion means the listed typecheck, Biome, node:test, Postgres, and browser scenarios pass, though this cross-cutting feature and existing fork make it unsuitable for a first-time contribution.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What outcome should OpenMuse handle?
Self-hosting OpenMuse without CopilotKit Intelligence, with conversations kept in the deployment's own Postgres or PGlite: the request in #73.
I built this as a fork and released it as OpenMuse Standalone v0.1.0: https://github.com/caspianchan31/openmuse-standalone (MIT, based on main at 1ac68f3). I'm sharing it in case it helps consolidate #94 and #166, and I'm happy to open a PR or split pieces out, whichever the maintainers prefer.
Proposed behavior
- Without
CPK_INTELLIGENCE_API_KEYthe API starts in local mode. With the key, behavior is unchanged from upstream, and upstream's config tests for the keyed path are kept. - The runtime runs in SSE mode on a persistent
AgentRunner(run/connect/isRunning/stop) backed by the app's own store (chat_threads,chat_runs,chat_events). It does not implementLocalThreadEndpointRunner, whose synchronous methods would force an in-memory store. /api/copilotkit/threads*(list, messages, rename, archive, restore, delete) and/api/main-threadare served by the Hono layer and scoped to the signed-in owner;/info.threadEndpointsis rewritten so the app uses them.- A send on a busy thread gets
409 agent_thread_lockedbefore any SSE response, so the app holds the message as it does withAgentThreadLockedError. - Replies are journaled while running, and the terminal event waits for the durable save; a failed save surfaces as
persistence_failed. Interrupted replies are recovered from the journal (PGlite at startup, Postgres once the lock is stale). OptionalCHAT_RETENTION_DAYS. - Edits to upstream files are small and marked
// Standalone:; new code lives inapps/server/src/standalone/.
On the points raised in the #166 review: new side chats persist through the agent-clone path with restart coverage; owner checks apply to every thread route and to run/connect/stop; failed and concurrent runs end cleanly and completion stays behind the durable write; there is no in-memory eviction, the database is the history.
How would we verify it works?
- 583 tests (typecheck, biome, node:test); the runner and store suites also run against Postgres 17.
- Keyless end-to-end in a browser: streaming, reload mid-reply resumes, Stop keeps the partial reply, a second tab's send is held via 409, side chats rename/archive/restore/delete, history survives an API restart and a
kill -9. - Docs:
docs/STANDALONE.md(architecture, upstream merge procedure) anddocs/STANDALONE-THREADS.md(routes, schema, validation).
Known limits: no live cross-device thread metadata sync; live resume needs a single API instance.
- Lingua principale
- TypeScript
- Stelle
- 5.2k
- Fork
- 730
- Merge medio
- 3g 20h
- PR unite (30g)
- 96
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di CopilotKit/openmuse
-
"Contains" page watch never matches when its text has a trailing spaceForse già presa @RaphaelFakhri l’ha presa 3 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
CopilotKit/openmuse#184 ·
I maintainer di solito rispondono entro 1 giorno
-
Tests: telemetry probes can exceed their 15s execFile timeout on Windows (cold tsx transpile + AV scanning)Forse già presa @sean0407 l’ha presa 12 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
CopilotKit/openmuse#176 ·
I maintainer di solito rispondono entro 1 giorno
-
[Feature] Dark modeAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 24/100
CopilotKit/openmuse#181 ·
I maintainer di solito rispondono entro 1 giorno
-
Dependency DashboardAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
CopilotKit/openmuse#153 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
CopilotKit/openmuse#78 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di CopilotKit/openmuse
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
Automattic/data-liberation-agent#953 ·
I maintainer di solito rispondono entro 1 giorno
-
README に GitHub の組織のバッジを足すApertadocumentation
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
funmary-app/funmary#399 ·
I maintainer di solito rispondono entro 1 giorno
-
area:curator enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
CassioDalla/Scrinalia#150 ·
I maintainer di solito rispondono entro 1 giorno
-
status: needs-triage v1-bug-bash
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
a2ui-project/a2ui#3533 ·
I maintainer di solito rispondono entro 1 giorno
-
backend enhancement priority:P3
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
geolens-io/geolens#3310 ·
I maintainer di solito rispondono entro 1 giorno