Skip to content

feat(web): connect native agents and deliver verified applications - #201

Closed
shyamsridhar123 wants to merge 1 commit into
codex/issue198-connections-backendfrom
codex/issue145-project-connections
Closed

shyamsridhar123 wants to merge 1 commit into
codex/issue198-connections-backendfrom
codex/issue145-project-connections

Conversation

@shyamsridhar123

Copy link
Copy Markdown
Collaborator

Summary

Layer 2 of 3: an ECorp operator can connect a project and native coding agent, test the connection, then use it to deliver a verified application.

  • Add reusable Connect and test / Test / Use controls for GitHub Copilot, Codex and Claude Code with explicit installation/account choices.
  • Preserve the saved project and selected agent across reload/disconnect; show readable project names rather than hardcoded lab choices.
  • Refresh offline/reconnected state from actual server/runner presence; cached readiness never authorizes execution.
  • Document the connection model and its security boundaries.

Depends on codex/issue198-connections-backend. The next layer adds authoritative mission-to-Factory context. Refs #198; #145 / #63 remain open for the complete operating lane.

Retained acceptance

Publishing unchanged commit 9efab732bed327f9aea8951a1640ba7d39d15f9f; no additional provider run was launched to publish it.

  • Real Copilot built Pantry Board from the operator's specification in an independent source repository; the original source stayed clean. The same mission/run completed after evidence acceptance in the browser.
  • Copilot readiness and inference were real. Installed Codex and Claude Code private profiles truthfully reported Sign-in needed; their inference is not claimed.
  • 52 focused connection/mission/snapshot tests passed; exported application tests 6 passed; separate actual-handler DOM tests 9 passed.
  • Keyboard, narrow layout, selection persistence, disconnect/reconnect, and independent-review development-role paths were exercised in the real browser.
  • The final combined-stack local migration/format/Clippy/build/lint gate passed, with 429 Rust tests passed, 171 ignored.

Complete acceptance report, provenance and limitations

Documentation and scope

Includes the project-connections guide and architecture/security updates. This does not claim production identity, real GitHub intake/publication through ECorp, multi-agent Studio acceptance or a one-click hosted result preview.

GitHub Actions credits are exhausted; retained local checks, not hosted CI, are the evidence. Commits retain [skip ci]. No merge or auto-merge is enabled.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9efab732be

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +108 to +110
(target?.workspaceConnectionId
? capability.workspace_connection_id === target.workspaceConnectionId
: !capability.workspace_connection_id),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Include bound runtimes in unscoped availability

When target is omitted, this now excludes every connection-bound runtime. App.tsx uses that unscoped result for realAdapters and operatingOfficeAgents, so if the runner's default machine profile is unavailable but a personal saved connection is ready, the onboarding UI reports “No real AI runtime” and hides the corresponding registered crew even though that connection can launch missions. Apply the binding filter only for target-specific dispatch selection, while allowing the unscoped status projection to include all available runtimes.

AGENTS.md reference: AGENTS.md:L14-L14

Useful? React with 👍 / 👎.

Comment thread apps/web/src/App.tsx
Comment on lines +4904 to +4907
const refreshVisiblePresence = () => {
if (document.visibilityState === 'visible') snapshotRefresh.request()
}
const presenceTimer = window.setInterval(refreshVisiblePresence, 5_000)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Limit presence polling to connection-dependent views

Every visible browser now requests the complete Corp snapshot every five seconds, even when the connections dialog is closed and the workspace has no saved connections. Because the snapshot includes the full bounded mission, task, run, artifact, and event projections and triggers an application-wide state update, idle clients create a continuous 12-requests-per-minute load each; at multi-user scale this needlessly taxes the server and causes recurring full-app renders. Poll the narrower connection/presence endpoint or enable this timer only while a connection-dependent view is open.

Useful? React with 👍 / 👎.

@shyamsridhar123

Copy link
Copy Markdown
Collaborator Author

Landed through the owner-authorized batch PR #228 at main commit b28fd4d26309794f38c0455bbf42d22aedf7cfd1. This PR's exact head 9efab732bed327f9aea8951a1640ba7d39d15f9f is an ancestor of that merge, and the final main tree is byte-identical to the validated batch tree 94bab7f19e3047f989408c4f4e9cec584aacb1dd.

Closing this original stacked review as superseded by #228, not claiming a separate merge of this PR. This removes duplicate work from the open queue. The branch, native stack #203 and later unfinished work are preserved. Broader source-issue acceptance is not declared complete. Branch protections and auto-merge settings were not changed.

@shyamsridhar123
shyamsridhar123 removed this pull request from stack #203 September 12, 2026 12:36
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