Skip to content

Add API connections, agent profiles and unified chat controls - #34

Merged
darrylschaefer merged 3 commits into
mainfrom
codex/api-connections
Oct 24, 2026
Merged

darrylschaefer merged 3 commits into
mainfrom
codex/api-connections

Conversation

@darrylschaefer

@darrylschaefer darrylschaefer commented Oct 24, 2026 •

Copy link
Copy Markdown
Owner

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

  • Application/test/browser typechecks, 527 unit/integration tests, and the production build passed locally.
  • Document-read regression passed 15 repetitions across all five browser projects (no retries or skips).
  • Realistic synthetic content; no live credentials or paid model calls.
  • GitHub Actions passed on e88e1f6: Linux and Windows validation, Linux Docker build, and all 100 browser journeys.

Current validation details are in docs/chat-qa.md; browser setup is in e2e/README.md. Interface captures are linked from docs/agent-profiles.md and docs/api-connections.md.

Desktop and phone chat controls:

Desktop chat controls

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.

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.
@vercel

vercel Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
fthr-m0hg Ready Ready Preview Oct 24, 2026 8:55pm UTC

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
darrylschaefer marked this pull request as ready for review October 24, 2026 21:11
@darrylschaefer
darrylschaefer merged commit 77578f3 into main Oct 24, 2026
7 of 8 checks passed

This branch was successfully deployed

1 active deployment
Preview — e88e1f60 Deployed Oct 24, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant