Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
f937e06
fix: use authoritative sandbox endpoint for PR review
Rhosmarie Sep 4, 2026
73f2f86
fix: reuse sandbox codex config for PR review
Rhosmarie Sep 4, 2026
3dcf902
fix: align PR review codex session protocol
Rhosmarie Sep 4, 2026
7bcc9be
fix(pr-review): align codex app-server workflow with studio
Rhosmarie Sep 4, 2026
b8fbb06
fix(pr-review): enforce non-interactive github auth
Rhosmarie Sep 4, 2026
01c8a34
fix(pr-review): open started reviews as codex sandbox sessions
Rhosmarie Sep 4, 2026
4be0aa0
fix(pr-review): use configured codex sandbox tool
Rhosmarie Sep 4, 2026
f24d69c
fix(github): improve secrets guidance layout
Rhosmarie Sep 4, 2026
26e0c1b
fix(github): simplify review form guidance
Rhosmarie Sep 4, 2026
4c49d51
fix(pr-review): retry github app sandbox connection
Rhosmarie Sep 5, 2026
8987340
feat(pr-review): add github app repository enablement
Rhosmarie Sep 5, 2026
3c3f443
chore: merge main into code review app
Rhosmarie Sep 5, 2026
0a389ce
fix(github-app): derive review repository from PR URL
Rhosmarie Sep 5, 2026
d800784
fix(github): avoid review settings error before repositories load
Rhosmarie Sep 7, 2026
05493d5
style(github): remove pr review input label
Rhosmarie Sep 7, 2026
f65a3cd
fix: hide github pagination when no adjacent page exists
Rhosmarie Sep 7, 2026
6f1a669
fix(github-review): hide session action after completion
Rhosmarie Sep 8, 2026
dcf3ee7
delete useless file
Rhosmarie Sep 8, 2026
4931497
chore(merge): merge origin/main into feat/code-review-app
Rhosmarie Sep 8, 2026
9630bc0
chore(merge): merge origin/main into feat/code-review-app
Rhosmarie Sep 8, 2026
ff84c73
fix(ci): resolve sandbox stream schema and lockfile issues
Rhosmarie Sep 8, 2026
6a68651
fix(test): remove release entrypoint shutdown race
Rhosmarie Sep 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion examples/codex_ops_assistant/ops_backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ def at(hour: int) -> datetime:
ts,
_sidecar_line(
ts,
"health_check ok cluster=checkout-api upstream=10.4.2.17:8080",
"health_check ok cluster=checkout-api upstream=192.0.2.17:8080",
),
)
)
Expand Down
1 change: 1 addition & 0 deletions frontend/server/intelligent_development_routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -1386,6 +1386,7 @@ async def cleanup_task_files() -> None:
),
turn_permissions=_BUILDER_PERMISSIONS,
turn_timeout_seconds=_BUILDER_TURN_TIMEOUT_SECONDS,
turn_output_schema=None,
):
progress = _command_progress(event)
if progress is not None and progress not in emitted_progress:
Expand Down
56 changes: 56 additions & 0 deletions frontend/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3939,6 +3939,59 @@ export default function App() {
setSandboxProjectUploadOpen(false);
}

async function openCodexSandboxSession(sessionId: string, source: AgentConnectSource = "my_agents") {
setError("");
const operation = beginAgentConnect({
targetId: String(sessionId),
agentKind: "codex",
connectSource: source,
});
try {
const connected = await sandboxClient.connectSession(sessionId);
const snapshot = await loadSandboxThreadHistory(connected);
operation.succeed({
sandboxStatus: telemetrySandboxStatus(connected.status),
});
viewSidRef.current = "";
setSessionId("");
setPendingTurns([]);
setInput("");
setInvocation(emptyInvocation());
releaseAllSandboxPreviews();
if (snapshot) {
setSandboxTurns(sandboxSnapshotTurnsForStatus(snapshot, connected.busy));
setSandboxSession({
...connected,
threadId: snapshot.threadId,
cwd: snapshot.cwd ?? connected.cwd,
workspaceLocked: snapshot.workspaceLocked,
permissions: snapshot.permissions,
...(snapshot.model ? { model: snapshot.model } : {}),
});
} else {
setSandboxTurns([]);
setSandboxSession(connected);
}
setSandboxBusy(connected.busy);
setCreateView(null);
setSkillCenter(false);
setAddAgent(false);
setAddMenu(false);
setSearchView(false);
setManageAgents(false);
setAgentDetailTarget(null);
setMyAgents(false);
setApplicationsView(null);
setCronJobsView(false);
setSandboxAgentDetailTarget(null);
setSandboxAgentWorkspace(null);
} catch (cause) {
operation.fail(classifyTelemetryError(cause));
setError(cause instanceof Error ? cause.message : String(cause));
throw cause;
}
}

function openSandboxAgentDetails(session: SandboxAgentResource) {
setMyAgentsActiveType(session.toolName);
pushStudioPage({ page: "sandbox-agent-detail", returnTo: "agents" });
Expand Down Expand Up @@ -7006,6 +7059,9 @@ export default function App() {
automation={applicationsView}
cloudProvider={cloudProvider}
onBack={() => setApplicationsView("catalog")}
onOpenSandboxSession={(id) => {
void openCodexSandboxSession(id);
}}
/>
) : applicationsView === "catalog" ? (
<Applications onOpen={setApplicationsView} />
Expand Down
Loading
Loading