|
webclient: a viewer for every content type, and a message sent mid-turn waits its course
The lightbox is now one dialog for every file the artifacts panel and the content cards can show: audio and video players on the kit's own controls, a text/source view with highlight.js, and a three.js viewer that replaced the standalone stl.html frame with a model one. highlight.js emits .hljs-* classes and ships no theme, so until now every highlighted block rendered in one flat colour — app.scss now carries the palette. While a turn runs, the send button no longer turns into Stop and vanishes the draft with it: the message goes into the socket and is marked "queued" until the stream_start of the turn that consumes it, the write-now-run-next model navi-code uses. Send and Stop sit side by side, and the queue chip takes the larger of the local and the server's counts. The socket keeps its own liveness: a ping every 20 s, a watchdog that reopens a socket silent for 45 s or stuck in CONNECTING, and a reconnect on resume from background, network return or bfcache. On reopen it drops a half-written message left by the dead socket, so the session_sync that follows is not hidden behind a stream that will never finish. |
|---|
|
|
| docs/android-client.md |
|---|
| webclient/CLAUDE.md |
|---|
| webclient/dist/assets/index-CwAzkKrT.css 100644 → 0 |
|---|
| webclient/dist/assets/index-DGhWA8Gw.js 100644 → 0 |
|---|
|
Not supported
|
| webclient/dist/assets/index-Dtggp9Eo.js 0 → 100644 |
|---|
|
Not supported
|
| webclient/dist/assets/index-uqZyYvXb.css 0 → 100644 |
|---|
| webclient/dist/content-viewers/model.html 0 → 100644 |
|---|
| webclient/dist/content-viewers/stl.html 100644 → 0 |
|---|
| webclient/dist/index.html |
|---|
| webclient/dist/sw.js |
|---|
| webclient/public/content-viewers/model.html 0 → 100644 |
|---|
| webclient/public/content-viewers/stl.html 100644 → 0 |
|---|
| webclient/src/App.vue |
|---|
| webclient/src/components/artifacts/ArtifactsPanel.vue |
|---|
| webclient/src/components/chat/InputBar.vue |
|---|
| webclient/src/components/chat/QueuedMessagesChip.vue |
|---|
| webclient/src/components/messages/ContentCard.vue |
|---|
| webclient/src/components/messages/UserMessage.vue |
|---|
| webclient/src/components/ui/ContentLightbox.vue 0 → 100644 |
|---|
| webclient/src/components/ui/ImageLightbox.vue 100644 → 0 |
|---|
| webclient/src/composables/useLightbox.js |
|---|
| webclient/src/composables/useMarkdown.js |
|---|
| webclient/src/composables/useWebSocket.js |
|---|
| webclient/src/i18n/messages/en.js |
|---|
| webclient/src/i18n/messages/ru.js |
|---|
| webclient/src/i18n/messages/uk.js |
|---|
| webclient/src/stores/chat.js |
|---|
| webclient/src/styles/app.scss |
|---|
| webclient/src/utils/contentTypes.js 0 → 100644 |
|---|
| webclient/src/utils/sourceHighlight.js |
|---|
| webclient/tests/unit/components/chat/inputBar.test.js 0 → 100644 |
|---|
| webclient/tests/unit/components/ui/contentLightbox.test.js 0 → 100644 |
|---|
| webclient/tests/unit/composables/useMarkdown.test.js |
|---|
| webclient/tests/unit/composables/useWebSocket.test.js |
|---|
| webclient/tests/unit/stores/chat.test.js |
|---|
| webclient/tests/unit/utils/contentTypes.test.js 0 → 100644 |
|---|