Zellij rich history replay can hide the conversation tail after long URL-only lines

Open 💬 3 comments Opened Jun 29, 2026 by jeiea

What version of Codex CLI is running?

codex-cli 0.142.3

What subscription do you have?

Pro

Which model were you using?

gpt-5.5

What platform is your computer?

Darwin 25.5.0 arm64 arm

What terminal emulator and version are you using (if applicable)?

zellij 0.44.3, TERM=xterm-256color

Codex doctor report

<details><summary>Details</summary>
<p>

{
  "schemaVersion": 1,
  "generatedAt": "1782727019s since unix epoch",
  "overallStatus": "fail",
  "codexVersion": "0.142.3",
  "checks": {
    "app_server.status": {
      "id": "app_server.status",
      "category": "app-server",
      "status": "ok",
      "summary": "background server is not running",
      "details": {
        "control socket": "/Users/jeiea/.codex/app-server-control/app-server-control.sock",
        "daemon state dir": "/Users/jeiea/.codex/app-server-daemon",
        "mode": "ephemeral",
        "pid file": "/Users/jeiea/.codex/app-server-daemon/app-server.pid (missing)",
        "settings": "/Users/jeiea/.codex/app-server-daemon/settings.json (missing)",
        "status": "not running",
        "update-loop pid file": "/Users/jeiea/.codex/app-server-daemon/app-server-updater.pid (missing)"
      },
      "remediation": null,
      "durationMs": 0
    },
    "auth.credentials": {
      "id": "auth.credentials",
      "category": "auth",
      "status": "ok",
      "summary": "auth is configured",
      "details": {
        "auth file": "/Users/jeiea/.codex/auth.json",
        "auth storage mode": "File",
        "stored API key": "false",
        "stored ChatGPT tokens": "true",
        "stored agent identity": "false",
        "stored auth mode": "chatgpt"
      },
      "remediation": null,
      "durationMs": 0
    },
    "config.load": {
      "id": "config.load",
      "category": "config",
      "status": "ok",
      "summary": "config loaded",
      "details": {
        "CODEX_HOME": "/Users/jeiea/.codex",
        "config.toml": "/Users/jeiea/.codex/config.toml",
        "config.toml parse": "ok",
        "cwd": "/Users/jeiea/Documents/socra/2025/04/vestway_app",
        "enabled feature flags": "shell_tool, unified_exec, shell_snapshot, terminal_resize_reflow, sqlite, hooks, enable_request_compression, multi_agent, tool_search_always_defer_mcp_tools, in_app_browser, browser_use, browser_use_full_cdp_access, browser_use_external, computer_use, plugin_sharing, image_generation, resize_all_images, skill_mcp_dependency_install, mentions_v2, steer, guardian_approval, goals, collaboration_modes, tool_call_mcp_elicitation, personality, fast_mode, tui_app_server, prevent_idle_sleep, auto_compaction, remote_compaction_v2, workspace_dependencies",
        "feature flag overrides": "apps=false, tool_suggest=false, plugins=false, prevent_idle_sleep=true",
        "feature flags enabled": "31",
        "log dir": "/Users/jeiea/.codex/log",
        "mcp servers": "0",
        "model": "gpt-5.5",
        "model provider": "openai",
        "sqlite home": "/Users/jeiea/.codex"
      },
      "remediation": null,
      "durationMs": 0
    },
    "git.environment": {
      "id": "git.environment",
      "category": "git",
      "status": "ok",
      "summary": "git version 2.54.0",
      "details": {
        ".git entry": "directory",
        "PATH git #1": "/etc/profiles/per-user/jeiea/bin/git",
        "PATH git #2": "/opt/homebrew/bin/git",
        "PATH git #3": "/usr/bin/git",
        "PATH git entries": "3",
        "git branch": "ci/fastlane-api-key",
        "git build options": "git version 2.54.0; cpu: arm64; no commit associated with this build; sizeof-long: 8; sizeof-size_t: 8; shell-path: /nix/store/55976waa157aqb1ncbwm6b8sa64b6m3h-bash-5.3p9/bin/bash; rust: enabled; feature: fsmonitor--daemon; gettext: enabled; libcurl: 8.20.0; OpenSSL: OpenSSL 3.6.2 7 Apr 2026; zlib-ng: 2.3.3; SHA-1: SHA1_DC; SHA-256: SHA256_BLK; default-ref-format: files; default-hash: sha1",
        "git exec path": "/nix/store/a14yxcqvv9x2l9mllgpirzhvz93pgprg-git-2.54.0/libexec/git-core",
        "git version": "git version 2.54.0",
        "repo detected": "true",
        "repo root": "/Users/jeiea/Documents/socra/2025/04/vestway_app",
        "selected git": "/etc/profiles/per-user/jeiea/bin/git"
      },
      "remediation": null,
      "durationMs": 36
    },
    "installation": {
      "id": "installation",
      "category": "install",
      "status": "ok",
      "summary": "installation looks consistent",
      "details": {
        "PATH codex #1": "/opt/homebrew/bin/codex",
        "current executable": "/opt/homebrew/bin/codex",
        "install context": "brew",
        "managed by bun": "false",
        "managed by npm": "false",
        "managed package root": "not set"
      },
      "remediation": null,
      "durationMs": 5
    },
    "mcp.config": {
      "id": "mcp.config",
      "category": "mcp",
      "status": "ok",
      "summary": "no MCP servers configured",
      "details": {},
      "remediation": null,
      "durationMs": 0
    },
    "network.env": {
      "id": "network.env",
      "category": "network",
      "status": "ok",
      "summary": "network-related environment looks readable",
      "details": {
        "proxy env vars": "none"
      },
      "remediation": null,
      "durationMs": 0
    },
    "network.provider_reachability": {
      "id": "network.provider_reachability",
      "category": "reachability",
      "status": "ok",
      "summary": "active provider endpoints are reachable over HTTP",
      "details": {
        "ChatGPT base URL": "https://chatgpt.com/backend-api/ reachable (HTTP 403)",
        "reachability mode": "ChatGPT auth"
      },
      "remediation": null,
      "durationMs": 1303
    },
    "network.websocket_reachability": {
      "id": "network.websocket_reachability",
      "category": "websocket",
      "status": "ok",
      "summary": "Responses WebSocket handshake succeeded",
      "details": {
        "DNS": "2 IPv4, 0 IPv6, first IPv4",
        "auth mode": "chatgpt",
        "connect timeout": "15000 ms",
        "endpoint": "wss://chatgpt.com/backend-api/<redacted>",
        "handshake result": "HTTP 101 Switching Protocols",
        "model provider": "openai",
        "models etag present": "true",
        "provider name": "OpenAI",
        "proxy env vars": "none",
        "reasoning header": "false",
        "server model present": "false",
        "supports websockets": "true",
        "wire API": "responses"
      },
      "remediation": null,
      "durationMs": 2232
    },
    "runtime.provenance": {
      "id": "runtime.provenance",
      "category": "runtime",
      "status": "ok",
      "summary": "running brew on macos-aarch64",
      "details": {
        "commit": "unknown",
        "current executable": "/opt/homebrew/bin/codex",
        "install method": "brew",
        "platform": "macos-aarch64",
        "version": "0.142.3"
      },
      "remediation": null,
      "durationMs": 0
    },
    "runtime.search": {
      "id": "runtime.search",
      "category": "search",
      "status": "ok",
      "summary": "search is OK (system)",
      "details": {
        "search command": "rg",
        "search command readiness": "ripgrep 15.1.0",
        "search provider": "system"
      },
      "remediation": null,
      "durationMs": 12
    },
    "sandbox.helpers": {
      "id": "sandbox.helpers",
      "category": "sandbox",
      "status": "ok",
      "summary": "sandbox configuration is readable",
      "details": {
        "approval policy": "OnRequest",
        "codex-linux-sandbox helper": "none",
        "execve wrapper helper": "/Users/jeiea/.codex/tmp/arg0/codex-arg0Qn7P6A/codex-execve-wrapper",
        "filesystem sandbox": "restricted",
        "network sandbox": "restricted"
      },
      "remediation": null,
      "durationMs": 0
    },
    "state.paths": {
      "id": "state.paths",
      "category": "state",
      "status": "ok",
      "summary": "state paths and databases are inspectable",
      "details": {
        "CODEX_HOME": "/Users/jeiea/.codex (dir)",
        "active rollout files": "673 files, 409405877 total bytes, 608329 average bytes",
        "archived rollout files": "4 files, 207563 total bytes, 51890 average bytes",
        "goals DB": "/Users/jeiea/.codex/goals_1.sqlite (file)",
        "goals DB integrity": "ok",
        "log DB": "/Users/jeiea/.codex/logs_2.sqlite (file)",
        "log DB integrity": "ok",
        "log dir": "/Users/jeiea/.codex/log (dir)",
        "memories DB": "/Users/jeiea/.codex/memories_1.sqlite (file)",
        "memories DB integrity": "ok",
        "sqlite home": "/Users/jeiea/.codex (dir)",
        "state DB": "/Users/jeiea/.codex/state_5.sqlite (file)",
        "state DB integrity": "ok"
      },
      "remediation": null,
      "durationMs": 819
    },
    "state.rollout_db_parity": {
      "id": "state.rollout_db_parity",
      "category": "threads",
      "status": "warning",
      "summary": "rollout files and state DB thread inventory differ",
      "details": {
        "default model provider": "openai",
        "rollout DB active files": "673",
        "rollout DB active rows": "673",
        "rollout DB archive mismatches": "0",
        "rollout DB archived files": "4",
        "rollout DB archived rows": "4",
        "rollout DB duplicate DB paths": "0",
        "rollout DB duplicate rollout thread ids": "0",
        "rollout DB malformed file names": "0",
        "rollout DB missing active rows": "97",
        "rollout DB missing active sample": [
          "/Users/jeiea/.codex/sessions/2026/04/13/rollout-2026-04-13T18-21-10-019d8625-136f-7791-b17b-0090042341ea.jsonl",
          "/Users/jeiea/.codex/sessions/2026/04/23/rollout-2026-04-23T15-28-46-019db906-d765-7bf2-b42f-2c5738690879.jsonl",
          "/Users/jeiea/.codex/sessions/2026/04/23/rollout-2026-04-23T13-14-07-019db88b-8eee-71f0-af48-566054b6608e.jsonl",
          "/Users/jeiea/.codex/sessions/2026/04/23/rollout-2026-04-23T15-14-39-019db8f9-e93b-7b62-8a5d-f4830aef4183.jsonl",
          "/Users/jeiea/.codex/sessions/2026/04/23/rollout-2026-04-23T15-08-27-019db8f4-3c93-7251-9367-c51fee9ff988.jsonl"
        ],
        "rollout DB missing archived rows": "4",
        "rollout DB missing archived sample": [
          "/Users/jeiea/.codex/archived_sessions/rollout-2026-04-09T14-12-07-019d70a7-a2ab-7d71-bc30-47f183eab8fd.jsonl",
          "/Users/jeiea/.codex/archived_sessions/rollout-2026-04-09T13-55-36-019d7098-83c1-7303-868b-8b155b425139.jsonl",
          "/Users/jeiea/.codex/archived_sessions/rollout-2026-04-08T18-36-59-019d6c73-c28b-7b91-a604-1ff4b3b64a46.jsonl",
          "/Users/jeiea/.codex/archived_sessions/rollout-2026-04-06T13-24-15-019d6108-bc10-7983-ae54-c14c6874b259.jsonl"
        ],
        "rollout DB model providers": "openai=677",
        "rollout DB rows": "677",
        "rollout DB scan cap reached": "false",
        "rollout DB scan errors": "0",
        "rollout DB sources": "cli=365, exec=171, subagent:thread_spawn=87, vscode=54",
        "rollout DB stale row sample": [
          "/Users/jeiea/.codex/sessions/2026/03/09/rollout-2026-03-09T12-34-33-019cd0a9-2c4b-7e61-b6ba-30726373a1fa.jsonl",
          "/Users/jeiea/.codex/sessions/2026/03/09/rollout-2026-03-09T13-18-41-019cd0d1-9414-7e52-a904-593af7393a40.jsonl",
          "/Users/jeiea/.codex/sessions/2026/03/09/rollout-2026-03-09T14-00-14-019cd0f7-9e4c-7b32-ba06-a018b36c2401.jsonl",
          "/Users/jeiea/.codex/sessions/2026/03/10/rollout-2026-03-10T13-40-45-019cd60c-22e2-76d3-89d8-9a69161e05e3.jsonl",
          "/Users/jeiea/.codex/sessions/2026/03/10/rollout-2026-03-10T16-48-35-019cd6b8-18f4-7cb3-b525-c29c638f47ec.jsonl"
        ],
        "rollout DB stale rows": "101"
      },
      "issues": [
        {
          "severity": "warning",
          "cause": "rollout files are missing from the state DB",
          "measured": "97 active, 4 archived",
          "expected": "every rollout file has a matching threads row",
          "remedy": null,
          "fields": []
        },
        {
          "severity": "warning",
          "cause": "state DB rows point at missing or unusable rollout files",
          "measured": "101 stale rows",
          "expected": "every state DB rollout path is a file on disk",
          "remedy": null,
          "fields": []
        }
      ],
      "remediation": null,
      "durationMs": 2758
    },
    "system.environment": {
      "id": "system.environment",
      "category": "system",
      "status": "ok",
      "summary": "OS language ko-KR",
      "details": {
        "EDITOR": "set",
        "LANG": "en_US.UTF-8",
        "LESS": "set",
        "PAGER": "set",
        "VISUAL": "not set",
        "os": "Mac OS 26.5.1 [64-bit]",
        "os language": "ko-KR",
        "os type": "Mac OS",
        "os version": "26.5.1"
      },
      "remediation": null,
      "durationMs": 5
    },
    "terminal.env": {
      "id": "terminal.env",
      "category": "terminal",
      "status": "fail",
      "summary": "TERMINFO unreadable - terminal capabilities are unknown",
      "details": {
        "COLORTERM": "truecolor",
        "TERMINFO_DIRS entry": [
          "/etc/profiles/per-user/jeiea/share/terminfo (dir)",
          "/Users/jeiea/.nix-profile/share/terminfo (missing)",
          "/etc/profiles/per-user/jeiea/share/terminfo (dir)",
          "/run/current-system/sw/share/terminfo (dir)",
          "/nix/var/nix/profiles/default/share/terminfo (missing)",
          "/usr/share/terminfo (dir)",
          "/usr/share/terminfo (dir)"
        ],
        "TERM_PROGRAM": "vscode",
        "color output": "disabled (stdout is not a terminal)",
        "effective locale": "en_US.UTF-8",
        "stderr is terminal": "true",
        "stdin is terminal": "true",
        "stdout is terminal": "false",
        "terminal": "VS Code",
        "terminal size": "152x16",
        "terminal version": "1.125.1"
      },
      "issues": [
        {
          "severity": "fail",
          "cause": "TERMINFO unreadable - terminal capabilities are unknown",
          "measured": null,
          "expected": "readable terminfo file or directory",
          "remedy": "check that $TERMINFO points to a readable directory",
          "fields": [
            "TERMINFO",
            "TERMINFO_DIRS entry"
          ]
        },
        {
          "severity": "warning",
          "cause": "height 16 rows - content may scroll off (recommended >=24)",
          "measured": "152 x 16",
          "expected": ">= 24 rows",
          "remedy": "resize the window to at least 24 rows",
          "fields": [
            "terminal size"
          ]
        }
      ],
      "remediation": null,
      "durationMs": 0
    },
    "terminal.title": {
      "id": "terminal.title",
      "category": "title",
      "status": "ok",
      "summary": "terminal title default",
      "details": {
        "terminal title activity": "true",
        "terminal title items": "activity, project-name",
        "terminal title project source": "git repo root",
        "terminal title project value": "vestway_app",
        "terminal title source": "default"
      },
      "remediation": null,
      "durationMs": 0
    },
    "updates.status": {
      "id": "updates.status",
      "category": "updates",
      "status": "ok",
      "summary": "update configuration is locally consistent",
      "details": {
        "cached latest version": "0.142.3",
        "check for update on startup": "true",
        "dismissed version": "0.134.0",
        "last checked at": "2026-06-29T01:08:28.292454Z",
        "latest version": "0.142.4",
        "latest version status": "newer version is available",
        "update action": "brew upgrade --cask codex",
        "version cache": "/Users/jeiea/.codex/version.json"
      },
      "remediation": null,
      "durationMs": 1210
    }
  }
}

</p>
</details>

What issue are you seeing?

When resuming a Codex session inside Zellij, the normal rich conversation view can stop before the actual end of the conversation. The missing tail is still visible in the Ctrl+T transcript view.

In the affected session, long URL-only history lines appear shortly before the missing tail. Raw output mode / raw reflow makes the tail visible again, which suggests the issue is in rich history replay rather than the stored transcript.

What steps can reproduce the bug?

  1. Start Zellij.
  2. Run Codex inside a Zellij pane.
  3. Resume session containing long URL-only web/search result lines.
  4. Open the normal conversation view.
  5. Compare the visible end of the conversation with Ctrl+T transcript.

Observed: Ctrl+T transcript shows the actual tail, but the normal rich conversation view does not.

What is the expected behavior?

The normal rich conversation view should show the same final conversation tail as the Ctrl+T transcript view when resuming inside Zellij.

Additional information

Related broader Zellij scrollback/history issues: #2558, #16578, #22214, #23651.

This appears narrower than the previous general Zellij scrollback issues: rich mode keeps long URL-only lines unwrapped for clickable URL detection, but Zellij can mishandle the resulting soft-wrapped continuation rows during history insertion. Routing those batches through the existing Zellij raw insertion path fixes the local repro.

I confirmed that the issue was resolved in this commit: https://github.com/jeiea/codex/tree/fix/zellij-rich-url-raw-insert

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗