Repository navigation
Add API connections, agent profiles and unified chat controls - #34
Merged
Merged
Conversation
Keep credentials and discovered model catalogs in separate device storage. Introduce saved profiles, conversation settings and automatic context budgets. Unify streaming and tool continuations with cancellation ownership, approval recovery and unit/integration plus browser regression coverage.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Flush editor autosave before automatic and approved tool execution, and recheck generation ownership after saving. Preserve approvals on save failure or cancellation. Add six integration regressions and exercise pending edits in the real document-read browser journey.
Use full snapshot text rather than the asynchronously updated search index. Cover missing and outdated index entries, long formatted text and empty passages. Exercise real keyboard input immediately before document reads in browser tests.
darrylschaefer
marked this pull request as ready for review
October 24, 2026 21:11
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add device API connections, agent profiles and unified chat controls
Problem and resulting behavior
Model choices and chat behavior were spread across shared settings, making it difficult to see which model, instructions and tools applied to the current conversation. New workspaces now start without models; writers add a named OpenAI key through Search to load an available chat-model catalog. Keys stay in separate device storage and are excluded from workspace exports and sync.
Saved agent profiles combine model, instructions, response preferences, context policy and tool approvals. New chat (Ctrl+M) offers profiles before available models, while existing chats retain independent snapshots. The unified assistant header opens conversation-specific settings, and the composer shows the enabled tool count. Automatic context budgeting preserves complete turns and tool exchanges, with inspectable advanced limits.
The shared chat runner supports cancellation, incremental streaming, error recovery and tool continuations. Tools save pending manuscript edits before execution, and document reads use the document snapshot so background indexing cannot return stale passage text. Regression coverage exercises these paths in unit/integration tests and real desktop/phone browser contexts using synthetic provider responses.
Related issue
This PR implements the reviewed API-connection, agent-profile and chat-controls work. No new issue is opened as part of this change.
Validation
Current validation details are in
docs/chat-qa.md; browser setup is ine2e/README.md. Interface captures are linked fromdocs/agent-profiles.mdanddocs/api-connections.md.Desktop and phone chat controls:
Risks and rollback
Device browser storage is accessible to application JavaScript and is not an encrypted vault. Legacy local credentials migrate into separate device records before their original workspace copy is removed. A rollback must retain these records: an older build does not automatically move keys back into the workspace, and reconnecting may be necessary. Back up writing before changing versions; manual workspace exports still omit conversations/checkpoints.
Chat model filtering is based on provider IDs because model discovery does not include a complete capability matrix. Parameter support and live provider authentication remain outside the synthetic test suite. Legacy Chat Completions/fine-tune configuration is retired by application policy; historical chats stay readable. Electron packaging, physical phones and authenticated Google Drive sync require separate verification.