docs: update CLAUDE.md with embeds schema, WS events, and feature status
This commit is contained in:
@@ -409,6 +409,28 @@ CREATE TABLE attachments (
|
|||||||
created_at INTEGER NOT NULL
|
created_at INTEGER NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
|
-- Embeds (resolved URL previews)
|
||||||
|
CREATE TABLE embeds (
|
||||||
|
id TEXT PRIMARY KEY,
|
||||||
|
message_id TEXT REFERENCES messages(id) ON DELETE CASCADE,
|
||||||
|
dm_message_id TEXT REFERENCES dm_messages(id) ON DELETE CASCADE,
|
||||||
|
url TEXT NOT NULL,
|
||||||
|
embed_type TEXT NOT NULL CHECK (embed_type IN ('generic', 'video', 'image', 'audio', 'rich')),
|
||||||
|
provider TEXT, -- 'youtube' | 'vimeo' | 'spotify' | null
|
||||||
|
title TEXT,
|
||||||
|
description TEXT,
|
||||||
|
image TEXT, -- thumbnail/og:image URL
|
||||||
|
embed_url TEXT, -- iframe-safe embed URL
|
||||||
|
width INTEGER,
|
||||||
|
height INTEGER,
|
||||||
|
color TEXT,
|
||||||
|
created_at INTEGER NOT NULL,
|
||||||
|
CHECK (
|
||||||
|
(message_id IS NOT NULL AND dm_message_id IS NULL) OR
|
||||||
|
(message_id IS NULL AND dm_message_id IS NOT NULL)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
-- Reactions
|
-- Reactions
|
||||||
CREATE TABLE reactions (
|
CREATE TABLE reactions (
|
||||||
id TEXT PRIMARY KEY,
|
id TEXT PRIMARY KEY,
|
||||||
@@ -788,6 +810,10 @@ All WebSocket messages are JSON over `/ws`. Client authenticates by sending `{ t
|
|||||||
{ type: 'join_request_accepted', request, space? }
|
{ type: 'join_request_accepted', request, space? }
|
||||||
{ type: 'join_request_declined', request }
|
{ type: 'join_request_declined', request }
|
||||||
|
|
||||||
|
# Embeds
|
||||||
|
{ type: 'embeds_resolved', messageId, channelId, embeds: Embed[] }
|
||||||
|
{ type: 'dm_embeds_resolved', messageId, dmChannelId, embeds: Embed[] }
|
||||||
|
|
||||||
# Space Layout
|
# Space Layout
|
||||||
{ type: 'space_layout_updated', layout: SpaceLayoutItem[], folders: SpaceFolder[] }
|
{ type: 'space_layout_updated', layout: SpaceLayoutItem[], folders: SpaceFolder[] }
|
||||||
```
|
```
|
||||||
@@ -895,7 +921,8 @@ All core features are implemented and live:
|
|||||||
- **Friends:** Send/accept/decline requests, friend list, user search
|
- **Friends:** Send/accept/decline requests, friend list, user search
|
||||||
- **Audio Processing:** RNNoise noise suppression, echo cancellation, auto gain control, per-user volume
|
- **Audio Processing:** RNNoise noise suppression, echo cancellation, auto gain control, per-user volume
|
||||||
- **File Uploads:** Multipart upload, immutable cache headers, directory traversal protection
|
- **File Uploads:** Multipart upload, immutable cache headers, directory traversal protection
|
||||||
- **URL Previews:** Server-side metadata extraction with Cheerio
|
- **Inline Media:** Video/audio attachment playback, YouTube/Vimeo click-to-load embeds, Spotify rich embeds, external image URL display, database-backed embed resolution
|
||||||
|
- **URL Previews:** Server-side metadata extraction with Cheerio (now shared utility for embed resolver)
|
||||||
- **Desktop:** Electron wrapper with tray, notifications, badge count
|
- **Desktop:** Electron wrapper with tray, notifications, badge count
|
||||||
- **Docker:** Multi-stage build, health checks, Caddy auto-HTTPS
|
- **Docker:** Multi-stage build, health checks, Caddy auto-HTTPS
|
||||||
- **Federation:** Multi-instance user replication, home instance tracking, connected instances UI, profile sync
|
- **Federation:** Multi-instance user replication, home instance tracking, connected instances UI, profile sync
|
||||||
|
|||||||
Reference in New Issue
Block a user