Use native Codex steering and transcript deletion

This commit is contained in:
iris committed 2026-09-09 12:19:11 -04:00
1 parent 00538cc19b
commit 8c88a7e991
12 files changed
+1004 -390

No files matched your search

@@ -140,6 +140,8 @@ data class SessionSummary(
* still there, and re-importing is not a restore.
*/
val keepsOwnTranscript: Boolean,
/** Product whose durable transcript survives an ordinary app deletion. */
val ownTranscriptName: String?,
/** How much the session asks before acting; null when it was never set. */
val permissionMode: String?,
/**
@@ -238,6 +240,7 @@ private fun parseSession(session: JSONObject) =
id = session.getString("id"),
setup = session.getString("setup"),
keepsOwnTranscript = session.optBoolean("keepsOwnTranscript", false),
ownTranscriptName = session.optString("ownTranscriptName").ifEmpty { null },
setupName = session.getString("setupName"),
provider = session.getString("provider"),
title = session.getString("title"),
@@ -1230,10 +1233,10 @@ fun compactSession(settings: ServerSettings, sessionId: String) {
/**
* Removes a session, and optionally the machine's own transcript of the same conversation.
*
* [deleteForeign] is the delete this app cannot otherwise reach: Claude Code keeps its own record
* under `~/.claude/projects`, and leaving it is what makes an ordinary delete recoverable. The
* server does both halves, and does the unrecoverable one first, so a machine it cannot reach
* leaves the session exactly where it was rather than half-deleted.
* [deleteForeign] is the delete this app cannot otherwise reach: coding CLIs keep their own durable
* record, and leaving it is what makes an ordinary delete recoverable. The server does both halves,
* and does the unrecoverable one first, so a machine it cannot reach leaves the session exactly
* where it was rather than half-deleted.
*/
fun deleteSession(settings: ServerSettings, sessionId: String, deleteForeign: Boolean = false) {
val query = if (deleteForeign) "?deleteForeign=true" else ""