Sign in
Join now
scn-chat
sharedcomputer.network
/
Star
Starred
Star
Something went wrong. Try again.
Fork
0
Eye filled
Watch
Watching
Watch
ATProto-based AI Assistant Chat interface.
Star
Starred
Star
Something went wrong. Try again.
Fork
Eye filled
Watch
Watching
Watch
Overview
Overview
Issues
Issues
1
1
Pulls
Pulls
Pipelines
Pipelines
scn-chat
/
apps
/
server
/
src
/
blobs
2 files
at
admin-config-export
pouriade.com
·
A file in a sent message shows as the chip it was in the composer, with its icon, name, and kind and size, as "PDF · 1.2 MB", rather than a bare link holding its name. The chip moves to src/shared/ui as FileChip, which the composer and the message share. The whole chip is a link: a PDF opens in a new tab in the browser's own viewer, ending in an arrow out, and any other file downloads under its name, ending in a download arrow. Files side by side share a row that wraps toward the message's edge. The blob routes, the owner's and the shared one, serve a PDF inline and take application/pdf as a type, so a spaces user's PDF reaches the browser as one. The attachments, web UI, and styling specs say so.
·
2w ago
8f996f77
routes.ts
A file in a sent message shows as the chip it was in the composer, with its icon, name, and kind and size, as "PDF · 1.2 MB", rather than a bare link holding its name. The chip moves to src/shared/ui as FileChip, which the composer and the message share. The whole chip is a link: a PDF opens in a new tab in the browser's own viewer, ending in an arrow out, and any other file downloads under its name, ending in a download arrow. Files side by side share a row that wraps toward the message's edge. The blob routes, the owner's and the shared one, serve a PDF inline and take application/pdf as a type, so a spaces user's PDF reaches the browser as one. The attachments, web UI, and styling specs say so.
2w ago
store.ts
Each account's records and blobs come from its ChatService, so createChatServices is the one place that chooses between a spaces PDS and the local fallback, for blobs as for records. The blob stores are bound to a DID like a RecordStore, as SpaceBlobStore(did, getPdsClient) and LocalBlobStore(did, dataDir), and ChatService gains putBlob and readBlob, which the attachment routes and the turn runner use in place of blobsFor, createBlobStores, turnBlobs, and the runner's TurnBlobs, all removed. The fallback's daily sweep is sweepLocalBlobs, which asks the local record store whether any record still references a blob, so only local-record-store.ts knows the local_record table. Reading or syncing a conversation and signing in no longer check the storage mode first, since the sync engine already skips accounts without spaces. Behaviour is unchanged. The turns harness runs on the real ChatService over the fake PDS in place of its fake blobs, so the test that moves a large tool output into a blob reads it back, and the blob tests go through ChatService in both modes, with a new one for a spaces blob no record references. The chat storage and attachments specs describe it.
2w ago