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
/
web
/
tests
/
store
7 files
at
rate-limits
pouriade.com
·
The browser store's React module keeps its query keys and its worker to itself and offers intents in their place: useRefreshConversation, and refreshConversation for a query's own function, check an open conversation against the PDS again as opening it does, and useSyncIndex syncs the chat index. The composer, the conversation actions, the reply follower, the chat list, and the sync status use them, so conversationRefreshKey is no longer exported and nothing outside src/store reaches the worker. The reply follower's poll now checks the conversation as opening it does, refreshing and then reconciling, so a refresh means one thing everywhere, and its key moves to reply-poll, leaving the conversation prefix to the store's own queries, whose exact invalidation on a change is commented and tested. useConversation gives waiting and empty in place of isLoading, refreshed, and refreshing, so ConversationView no longer works out when a conversation is known. The store's hooks have their own tests, and the web UI spec describes them.
·
2w ago
d9714092
client.test.ts
Implement initial buildout of core features.
1mo ago
core.test.ts
The chat list loads 50 chats at a time, newest first, and the next page as the end of the list nears, with three skeleton rows while it comes. The browser store pages by when a chat was updated and its key, so a chat moving to the top between pages is neither shown twice nor skipped, on a new index created on open when missing, so no one downloads their chats again. Given a tag, it pages through only that tag's chats, and the tags' counts and each chat's newest reply, for the new-reply marks, come from the store across every chat rather than the rows loaded, so a chat on a later page isn't marked new when it arrives. A change in the store refetches the pages already loaded, so a scrolled list keeps its place.
2w ago
handover.test.ts
Crash and privacy fixes, request validation, login CSRF, SSRF guard, handover race, and cleanup.
1mo ago
helpers.ts
Implement initial buildout of core features.
1mo ago
http-api.test.ts
Add the admin area for settings to replace config.yml.
4w ago
react.test.tsx
The browser store's React module keeps its query keys and its worker to itself and offers intents in their place: useRefreshConversation, and refreshConversation for a query's own function, check an open conversation against the PDS again as opening it does, and useSyncIndex syncs the chat index. The composer, the conversation actions, the reply follower, the chat list, and the sync status use them, so conversationRefreshKey is no longer exported and nothing outside src/store reaches the worker. The reply follower's poll now checks the conversation as opening it does, refreshing and then reconciling, so a refresh means one thing everywhere, and its key moves to reply-poll, leaving the conversation prefix to the store's own queries, whose exact invalidation on a change is commented and tested. useConversation gives waiting and empty in place of isLoading, refreshed, and refreshing, so ConversationView no longer works out when a conversation is known. The store's hooks have their own tests, and the web UI spec describes them.
2w ago
search.test.ts
Add local full-text search with search-as-you-type; open results on the matching branch
1mo ago