Sign in
Join now
scn-chat
sharedcomputer.network
/
Star
Starred
Star
5
Something went wrong. Try again.
Fork
0
Eye filled
Watch
Watching
Watch
ATProto-based AI Assistant Chat interface.
Star
Starred
Star
5
Something went wrong. Try again.
Fork
0
Eye filled
Watch
Watching
Watch
Overview
Overview
Issues
Issues
1
1
Pulls
Pulls
Pipelines
Pipelines
scn-chat
/
apps
/
web
/
src
/
features
/
conversation
/
lib
7 files
at
main
pouriade.com
·
Regenerate a reply as before through one helper
·
1w ago
d2ca39f3
blob-url.ts
Group the web app's code by feature. Each folder in src/features (auth, chat-list, conversation, sharing, models, settings, admin) holds that feature's pages, layouts included, components, hooks, lib, and queries, and the routes stay thin, rendering a feature's page. Page files are named after the component they export. The query factories split from src/queries.ts into each feature's queries.ts, leaving staleTime in src/shared, which also holds the API client, errors, search params, and the schema forms that admin and settings share. inheritedModel moves from the models module to the conversation's branch module, so models no longer depends on the conversation. Tests mirror the new tree, and the specs, the architecture doc, and CLAUDE.md name the new paths.
1mo ago
branch.ts
Regenerate a reply as before through one helper
1w ago
composer-handoff.ts
The composer's Draft, its text, quotes, attachments, model, and effort, lives in one module, useDraft, which decides whether it can be sent and builds the message from it. Composer only shows it.
2w ago
jump-replies.ts
Jump to can show the replies between the user's messages: a quiet Show replies toggle, remembered on the device, interleaves them as grey bubbles with a grey ring, and a reply landed on washes in grey. ToggleChip gains a quiet tone with an icon, and Markdown-to-plain-text moves into parts/plain.ts.
2w ago
load-conversation.ts
Load less and rerender less. The new-chat page no longer downloads the Markdown renderer: the conversation and the search results load with React.lazy, the chat route's loader starts the conversation's download, the new-chat page starts it once it shows, and opening the search starts the results', so what / downloads drops from 335 KB to 184 KB with brotli. Streamdown imports rehype-raw for its defaults, which markdown.tsx leaves out, so vite.config.ts aliases it to an empty stand-in in parts/no-raw.ts, keeping parse5 out of the build and the Markdown chunk from 163 KB to 71 KB gzipped. The logo's paths are rounded to two decimals, from 10.0 KB to 6.6 KB gzipped. The chat routes' loader starts the models, attachment types, and profile queries without waiting for them, and their head preconnects to the avatar's CDN. attachmentTypesQuery moves to its own module, so the loader doesn't bring the store's hooks into the entry. Pointing at or focusing a link preloads its route, the query cache deciding what is stale.
3w ago
outline.ts
Jump to can show the replies between the user's messages: a quiet Show replies toggle, remembered on the device, interleaves them as grey bubbles with a grey ring, and a reply landed on washes in grey. ToggleChip gains a quiet tone with an icon, and Markdown-to-plain-text moves into parts/plain.ts.
2w ago
reply-stream.ts
Retry busy providers. Don't retry spent keys. Add messaging for users.
2w ago