|
sessions: share a chat as a public read-only link
A session's owner can hand out one capability link that opens the display
history without an account: no input, no chat list, no artifacts panel.
The token lives in the URL hash, so it never reaches the server in a request
line or a Referer header.
The link is permanent by decision - no expiry, no revoke. Deleting the chat
removes the share row (FK cascade) and closes it, which is the only switch.
Backend: session_shares table (unique token, FK cascade), POST
/sessions/{id}/share issuing the session's one link (owner or admin; a
read-all permission may read another user's chat but not publish it), and
public GET /shared/{token}[/messages] serving display history only, with
session and owner ids left out of the payload.
Webclient: #share=<token> renders a standalone page with the owner's cards,
rating off, interactive UI components filtered out and scroll-up paging; a
share button in the chat header opens a dialog that creates the link.
Also fixes ChatHeader's rename, which called an undefined `api` and failed
silently.
|
|---|
|
|
| docs/api.md |
|---|
| docs/sessions.md |
|---|
| navi/api/routes/sessions.py |
|---|
| navi/api/routes/shared.py 0 → 100644 |
|---|
| navi/core/pg_session_store.py |
|---|
| navi/core/session.py |
|---|
| navi/main.py |
|---|
| tests/unit/api/test_shared_session.py 0 → 100644 |
|---|
| tests/unit/core/test_pg_session_store.py |
|---|
| webclient/dist/assets/index-9WlL4Sm7.css 100644 → 0 |
|---|
| webclient/dist/assets/index-Bco2oCCf.js 100644 → 0 |
|---|
|
Not supported
|
| webclient/dist/assets/index-Cz7DGfFX.css 0 → 100644 |
|---|
| webclient/dist/assets/index-D7CP8OYD.js 0 → 100644 |
|---|
|
Not supported
|
| webclient/dist/index.html |
|---|
| webclient/dist/sw.js |
|---|
| webclient/src/App.vue |
|---|
| webclient/src/api/index.js |
|---|
| webclient/src/components/chat/ChatHeader.vue |
|---|
| webclient/src/components/chat/ShareChatModal.vue 0 → 100644 |
|---|
| webclient/src/components/messages/AssistantMessage.vue |
|---|
| webclient/src/i18n/messages/en.js |
|---|
| webclient/src/i18n/messages/ru.js |
|---|
| webclient/src/i18n/messages/uk.js |
|---|
| webclient/src/utils/hash.js |
|---|
| webclient/src/views/SharedChatView.vue 0 → 100644 |
|---|
| webclient/tests/unit/components/appRouting.test.js |
|---|
| webclient/tests/unit/views/sharedChatView.test.js 0 → 100644 |
|---|