checkpoint: into wallentx/termux-target from release/0.146.0 @ e0e062fdb61b - #325
Merged
unemployabot[bot] merged 51 commits intoJul 23, 2026
Conversation
## What changed - Use `McpConnectionSet` as the primary name for the collection of active MCP server connections throughout `codex-mcp` and its callers. - Keep `McpConnectionManager` as a backward-compatible type alias. GitOrigin-RevId: 9753838b4fd0a0b6429a9c4af0c077137616f388
## What changed - Treat output-task closure as the signal that trailing output is complete, drain any remaining chunks before publishing command completion, and retain the grace period as a fallback. - Wait for deferred network-denial classification before emitting the final command result. - Serialize `write_stdin` interaction and completion events so an interaction that exits a process is published first, and avoid pruning processes while their terminal events are being finalized. ## Testing - Add coverage for late output, missing output-close signals, late network denials, interaction/completion ordering, cross-platform aggregated output, and pruning during finalization. GitOrigin-RevId: 46a118552bb1a4658b78aa5a5ca76eb8c5fba571
## Why Startup prewarms and Guardian review sessions do not need workspace Git metadata. Collecting it for those requests performs redundant work, while user turns still need a fresh view of the repository. ## What changed - Add a per-session Git enrichment policy. - Skip enrichment for startup prewarm, preview, and Guardian review turns. - Keep fresh enrichment enabled for regular sessions and one-shot delegated turns. ## Testing - Cover prewarm and Guardian requests omitting workspace metadata while subsequent user turns observe repository changes. - Cover concurrent repositories and worktrees retaining distinct metadata. - Verify concurrent enrichment is coalesced and canceled enrichment can be retried. GitOrigin-RevId: 4a68615288bb568c75f2e487d9c0776e3e80f191
## What changed - Publish `install.sh` and `install.ps1` from stable release assets to the mutable `codex/install.sh` and `codex/install.ps1` R2 keys. - Require both installer assets and verify each uploaded object's size, SHA-256 metadata, and CRC64 checksum before completing publication. - Leave prerelease publication unchanged. GitOrigin-RevId: 869f5fcd6c5f5d7fa4dc39c5216b31409d595fc9
## Why Long skill descriptions can consume the catalog's metadata budget before later skills are listed, hiding otherwise usable skills from the model. ## What changed - Reserve space for every skill's name and locator when those minimum lines fit. - Distribute the remaining token or character budget across descriptions in round-robin order. - Fall back to omitting entries only when the minimum catalog cannot fit. ## Testing Added extension and production-turn coverage that verifies moderate budget pressure keeps every catalog entry, shortens descriptions evenly, and avoids an omission marker. GitOrigin-RevId: 41971e4b47a86863b3839707b5cffcd8d83b888c
## What changed - Make `McpResourceClient` resolve resource operations and cache identity from the latest `McpRuntime` connection snapshot. - Remove step-bound resource clients from `McpBinding` and the associated per-binding client identity tracking. GitOrigin-RevId: ee59f5867308c5a63e6e232384a50cf1e0c2a011
## What changed - Remove the step-scoped `ExtensionData` argument from context, turn-input, and tool contributors. - Pass the host's optional `McpResourceClient` through `ThreadStartInput` so extensions can retain session capabilities explicitly. - Keep the MCP resource client in skills-owned session state for catalog loading and skill tools. GitOrigin-RevId: bafa77bcd998aff408d6a396c5fd9ac268c4cce4
## What changed When even the minimum skill catalog exceeds its metadata budget, render each included entry without its description. This allows more skill names and locators to fit before the remaining entries are omitted. ## Testing Add coverage for extreme budget pressure and verify both the extension and production-turn catalogs omit descriptions while staying within budget. GitOrigin-RevId: 72cec10e9587beabbd3d8c6d53b931deb76824e6
## What changed - Initialize the thread lifecycle input without an MCP resource client. - Call `contribute_thread_context` without the removed step-scoped data argument. GitOrigin-RevId: 689a982ba49c2788dde6bc2cbe0d6d7cae6c0a73
## Why Core-compatible catalog rendering needs to preserve the core renderer's skill priority, including when metadata budgets omit lower-priority entries. ## What changed - Carry each host skill's `SkillScope` into its catalog entry. - Under `CoreCompatible`, order visible skills by system, admin, repo, and user scope, then by name and prompt resource ID. - Preserve insertion order under `ExtensionCompatible`. ## Testing Add coverage for propagating host skill scope and for both rendering policies. GitOrigin-RevId: 9594a177edb2166abf1b5719c51a46fcee000600
## What changed - Add the disabled-by-default, under-development `mcp_2026_07_28` feature. - Include the feature in the configuration schema and app-server experimental feature enablement API. GitOrigin-RevId: 869835ee72f063d79ca2ecd9f2655d2efc457292
## What changed - Decode `JSONRPCRequest` into `ClientRequest` without serializing the entire request back into an intermediate JSON value. - Define every client method's wire name explicitly and use it directly for request, response, and tracing method lookups. - Serialize outgoing transport messages directly to JSON strings instead of first building a `serde_json::Value`. ## Testing - Add regression coverage that compares direct request conversion with Serde decoding, including omitted and null parameters, legacy methods, and unknown methods. - Verify that direct outgoing-message serialization preserves the notification wire shape. GitOrigin-RevId: 304e14bcaea24e32743bf852a60a208e2f273db3
…i#34763) ## What changed Treat `previous_response_not_found` websocket errors as retryable so Codex can retry with the full request. Preserve the server-provided error message when available, with a fallback message that explains the retry. GitOrigin-RevId: 7fb6a1b4f396de561c491a16d793e2730b052f01
## What changed - Use `ClientRequest::method_name()` directly when preparing typed request diagnostics for in-process and remote clients. - Allocate the owned method name only when constructing an error. - Remove the serialization-based method lookup and the redundant allocating `ClientRequest::method()` helper. GitOrigin-RevId: 93859e512a4f20204e0db4f929a2baebe4374ec5
## What changed - Add a `codex-git-attribution` context contributor that resolves the workspace's `commit_attribution_enabled` setting and supplies matching commit and pull request instructions through World State. - Cache resolved policy by authentication generation, recover from unauthorized responses, and fail disabled on timeouts or settings errors with deferred retries. - Handle enabled, disabled, and legacy attribution fragments so policy changes replace stale instructions without duplicating attribution. ## Testing - Cover World State transitions, policy resolution after unauthorized responses, and authentication changes during an in-flight settings request. GitOrigin-RevId: 6f733e708b5c960ba5e90751110910a03d1ba2df
## What changed - Let `exec-server` issue JSON-RPC requests to its client and correlate responses, with bounded concurrency, timeouts, and connection cleanup. - When `request_policy_decisions` is enabled, forward proxy policy requests with the process ID and network destination, then apply the client's allow, deny, or ask decision. - Fail closed for invalid inputs, unavailable or malformed responses, timeouts, process shutdown, and disconnects. Keep callbacks active while inherited process streams keep the proxy alive. ## Testing - Cover response correlation, request limits, timeouts, disconnect cleanup, validation boundaries, decision forwarding, and process lifecycle behavior. GitOrigin-RevId: 60e658102c50036589ca9de844760a8bffaa53b0
## What changed - Size the unified mention popup from its filtered row count, while keeping a one-row minimum and the existing maximum. - Update composer snapshots to cover the compact layout when only one mention result is visible. GitOrigin-RevId: 7cd30a5c53c7e81cf7158a6b3dda3c09bd024f29
## What changed Apply the existing whitespace-only line normalization to both streaming and finalized agent Markdown. Blank lines now discard indentation and stale hyperlinks while preserving their line style. GitOrigin-RevId: f6150190b02f8cd8c853220cae1a2dcd2f4578a5
## Why Session header rows can exceed the available inner width when the terminal is narrow, causing the bordered header to render wider than its requested width. ## What changed Truncate each session header row to the available inner width and append an ellipsis when content overflows. ## Testing Add a snapshot test for a 44-column session header and assert that every rendered line matches the requested width. GitOrigin-RevId: 7cf0ea48aa95a6f1ddd1a9dbb7c7fb70bdbcb5a3
…34777) ## Why Streamed message deltas can be dropped when the transport is saturated, leaving clients with a truncated final response. ## What changed - Include the last non-empty final agent message in successful `turn/completed` notifications and mark the items as a summary. - Treat completed message content as authoritative in the TUI, repairing an incomplete stream while avoiding duplicate messages when `item/completed` was already received. - Continue backfilling full turn items for persisted `codex exec` threads when a completion contains only the summary view. ## Testing Added coverage for completion summaries, dropped stream deltas, duplicate item handling, and directive-only responses. GitOrigin-RevId: ffe9d36d683d6b6690e4a468ff68aa9189fe6ab7
## What changed - Track adjacent cells with the same OSC 8 destination and emit a single hyperlink around their visible text. - Close active hyperlinks before non-link content and at the end of a draw. - Cover a production-length browser authentication URL at narrow terminal width, including the remote-login guidance and cancellation footer. GitOrigin-RevId: 9b87166ce78578137dfd2bf19db359ac83a908ee
## What changed - Require the parent thread to be live before forking its history. - Read the history mode and multi-agent usage hints from that live parent so the fork loads and filters history using the active configuration. - Verify that forking a legacy parent keeps the child in legacy history mode. GitOrigin-RevId: 79416b78544467a1801f21300d3fe8db4fef59df
## What changed - Upgrade `rules_rs` from `0.0.58` to `0.0.96` and LLVM from `0.7.9` to `0.8.11`, updating extension paths, platform constraints, and compatibility patches for the current APIs. - Add native `windows-gnullvm` execution support for the argument-comment lint toolchain while retaining MSVC execution for existing cross-target builds. - Build `aws-lc-sys` through the Bazel Central Registry `aws-lc` module and `rules_rs` integration, removing the replaced crate-specific patches. GitOrigin-RevId: 9829bcdb6ac74e846b713568aac38ea2fa3c42a2
## Why `local` identifies the environment owned by `EnvironmentManager`, but dynamic remote environment registration previously allowed that ID to be replaced. ## What changed Reject `local` in the shared environment ID validator used by dynamic remote environment registration. GitOrigin-RevId: 2622551f78989c16c432e6dd3d7da9bd8b0527c5
## What changed - Return a `SkillRenderReport` with total, included, and omitted skill counts, plus truncated description counts and character totals. - Keep fragment construction separate from rendering so callers can inspect the report even when the metadata budget is too small to emit a fragment. ## Testing - Cover partial description truncation, fully omitted entries, and catalogs whose omission marker does not fit the budget. GitOrigin-RevId: e73fdbcf77ac73c7209100ff6c9b5862b6a59a54
## What changed - Add typed helpers for initialized app-server instances, JSON-RPC requests, responses, notifications, and thread startup. - Add a composable `MockResponsesConfig` builder while preserving the existing mock config writers. - Migrate the app-server integration suite to the shared helpers, removing repeated request ID management, deserialization, initialization, and config assembly. ## Testing - Add unit coverage for composing mock provider, feature, and extra config, and for compatibility of the existing mock config writer. GitOrigin-RevId: 62da177c1d6e8299400de64bd6766567bf1ba3d8
## Why The post-sampling trace calculated an estimated token count even when only the always-on diagnostic and state log sinks were listening, adding unnecessary work after every sample. ## What changed - Move the estimate to a dedicated trace target and calculate it only when that event is enabled. - Disable the target for the always-on diagnostic and state log sinks while keeping it available to explicitly configured subscribers. ## Testing - Verify that the combined always-on subscribers do not enable the estimate event. GitOrigin-RevId: ea572584597dda313e7719897d0ab1fdf7362745
Update the git attribution test helper to construct `WorldStateContributionInput` without the removed `step_store` field. GitOrigin-RevId: 396b5508f05798f0b43d93f7d02838acdbf97c9b
## Why Very long individual lines can make syntax highlighting consume excessive CPU or memory even when the overall input remains below the existing size and line-count limits. ## What changed - Fall back to plain, unstyled text when any input line exceeds 4 KiB. - Keep the existing 512 KiB total-size and 10,000-line guardrails. ## Testing - Cover highlighting fallback and text preservation for a long single-line Bash command. - Snapshot rendering of a command that exceeds the per-line limit. GitOrigin-RevId: ba02997331a294d8a32ca89ee06acb12dd3bbd83
…4797) ## Why Core-compatible skill catalog output should match the core renderer when the metadata budget omits entries. ## What changed - Emit the bounded-catalog omission notice only for `ExtensionCompatible` rendering. - Continue tracking omitted entries in `SkillRenderReport` for both policies, even when `CoreCompatible` produces no fragment because every entry is omitted. ## Testing Cover policy-specific omission notices and the case where no minimum skill line fits within the metadata budget. GitOrigin-RevId: 79883c15a49c02ff83444ddc272030cb4ddb53c0
## What changed - Store the shell approval key's `cwd` as a `PathUri`, matching the URI representation used by approval actions. - Extend the approval-key test to verify both the URI-based working directory and environment scoping. ## Testing - Added `approval_key_uses_path_uri_and_includes_environment_id`. GitOrigin-RevId: 4d7ba1a2e652f4ffe317242f52beb33513b01e6a
## What changed - Add `SqliteConfig` to own the resolved SQLite home, runtime database paths, and shared read/write and read-only pool settings. - Pass the configuration through state and local thread-store consumers, replacing standalone path helpers and duplicated connection setup. GitOrigin-RevId: 7351b08da94b5c8b6c0bbe492f86aeeca0699d3c
## What changed
Use the supported `{{ network_access }}` placeholder syntax in the built-in
`danger-full-access`, `read-only`, and `workspace-write` sandbox templates so
permission instructions render the active network access state.
GitOrigin-RevId: 9f8d851016bd7fbedcfc4a9479236b46aca470e8
## What changed - Add `StartThreadOptions::new` to provide the standard configuration for a new thread. - Make `ThreadManager::start_thread` the single thread-start entry point and migrate callers from the previous convenience methods. - Derive default environment selections when `environments` is `None`, while preserving explicit selections, including an empty list. GitOrigin-RevId: 8977dc11aed54c5e1215a81eaed2b2cf5fc6087a
## What changed - Route realtime V3 `bemTags` handoffs using `[ANALYSIS]`, `[COMMENTARY]`, and `[FINAL]` prefixes by default. - Add `codexResponseHandoffChannelPrefixes` to realtime start requests so clients can replace the accepted prefixes for individual channels. Each channel may accept multiple prefixes, and omitted channels retain their defaults. - Apply the configured prefixes to both complete and streamed handoff messages, without treating empty prefixes as matches. ## Testing - Cover request deserialization, default and custom routing, partial streamed prefixes, empty-prefix handling, and end-to-end V3 handoffs. GitOrigin-RevId: d0aef50aa71362a5beef2c6f6d28b8633da4e529
## What changed - Install the git attribution extension in the app server, MCP server, and `codex debug prompt-input` so authenticated workspace policy controls the commit and pull request attribution instructions sent to the model. - Resolve attribution settings from the process-level ChatGPT base URL, independent of per-thread or per-tool configuration overrides. - Treat git attribution as contextual developer content when mapping model events. ## Testing - Cover policy fetch retries, workspace switches, rollbacks, cold thread resumes with legacy instructions, MCP tool calls, and prompt-debug output. GitOrigin-RevId: 57d182c432c20d7c1c6c429057b6163c9f32088d
## What changed - Remove the code-mode skip filter from the shared Bazel CI configuration so Linux and macOS run the full code-mode integration suite. - Keep the hidden dynamic-tool callback and ConPTY Ctrl-C tests excluded on Windows, where they currently time out or cannot reliably interrupt foreground processes. - Preserve those exclusions in the Windows cross-build configuration alongside its PowerShell parser-process exclusion. GitOrigin-RevId: 1013b9c0c7273ac6618ec3b504d723350b293c1f
## What changed - Store the spawned session's working directory as a `PathUri` in `GuardianReviewSessionReuseKey` so reuse comparisons use its canonical URI representation. - Assert that the reuse key contains the converted working directory. GitOrigin-RevId: 68d440a37ebb310c610dabbb3373ed0ceff88dfa
## Why Preparing Responses API requests rebuilt tool definitions as a generic JSON tree, and incremental WebSocket requests cloned their full item prefix for comparison. ## What changed - Serialize tool definitions into shared raw JSON that can be embedded directly in HTTP and WebSocket requests. - Compare incremental request prefixes in place while still ignoring internal message metadata. ## Testing - Verify raw tool JSON matches the existing value encoding. - Preserve the serialized WebSocket request payload. GitOrigin-RevId: 66e2921792c332e8904954dafa597f6d39abcf29
## What changed - Stop forcing the `local_windows_msvc` host platform for Windows `argument-comment-lint` builds. - Stop selecting the Rust linker preference explicitly. - Continue skipping incompatible explicit targets on Windows. GitOrigin-RevId: de3014c1fb0685d33cad32fccb0081a3717d9676
## Why The in-process app server can shut down while analytics for a completed turn are still queued, preventing the completed-turn and accepted-line events from being delivered. ## What changed - Add a bounded analytics queue flush that waits for all preceding facts to be processed. - Flush analytics after the in-process runtime drains its outbound work and before acknowledging shutdown. - Extend the in-process shutdown timeout budgets to cover runtime draining and the best-effort analytics flush. ## Testing - Verify that the flush waits for preceding facts and is a no-op when analytics is disabled. - Verify that shutdown waits for delayed analytics delivery, including the completed-turn and accepted-line events produced by a file change. GitOrigin-RevId: 57ca24e535e5e2f3f3202b2e5498f075676c910a
## What changed - Add `compaction_ms` to turn profile facts and turn analytics events. - Measure manual and automatic compaction as an exclusive profile phase instead of including it in surrounding idle time. - Complete the profile and total turn duration from the same instant so their elapsed times remain consistent. ## Testing - Cover compaction phase accounting and profile-duration consistency. - Update turn event serialization coverage for `compaction_ms`. GitOrigin-RevId: 50f0e1cf19789a807f9f56c2ef763c620a5d641c
## Why Interrupting a turn while MCP tools were still starting could abort before the submitted user input was recorded in conversation history. ## What changed - Build and retain the MCP tool list and tool router as part of each step snapshot, using the turn cancellation token during tool discovery. - Record turn hooks and submitted input when cancellation occurs during startup prewarming, pre-sampling compaction, or first-step capture. - Reuse the captured router for sampling, compaction, and prompt debugging so advertised and executable tools share the same request-scoped view. ## Testing Add coverage that interrupts each affected MCP startup phase and verifies that the user prompt remains in history before the turn-aborted marker. GitOrigin-RevId: 6e96c6814357a55545d69b580e28f35933cfadf7
## What changed - Add `isPinned` to thread responses and allow `thread/metadata/update` to pin or unpin stored threads. - Add an `isPinned` filter to `thread/list`, including cursor-based pagination and combinations with relationship filters. - Persist pin state in SQLite without modifying rollout files, default existing threads to unpinned, and preserve pins through reconciliation and archive transitions. ## Testing - Cover protocol serialization, database migration and indexing, pin updates, filtered pagination, rollout reconciliation, and archive/unarchive behavior. GitOrigin-RevId: c2eacabd6dae465e2ae6ce8a169e00740960cdb7
## What changed Remove `first_party_type` from connector app metadata and the app-server v2 protocol. Update metadata conversion and merge paths, generated JSON and TypeScript schemas, and affected test fixtures to match. GitOrigin-RevId: 3f2e56eca68352360d8c0d99d48486ae65d664c1
# Conflicts: # .github/scripts/publish_r2_release.py # patches/rules_rs_build_script_deps_annotation.patch
Termux rust-v0.146.0-alpha.4
…nt/wallentx_termux-target_from_release_0.146.0_e0e062fdb61b
unemployabot
Bot
deleted the
checkpoint/wallentx_termux-target_from_release_0.146.0_e0e062fdb61b
branch
July 23, 2026 03:37
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Termux release checkpoint
release/0.146.0e0e062fdb61bb7376dca3dc288b9bf83bb25e0b6wallentx/termux-targetThis PR carries release-train conflict fixes and follow-up changes back into the reusable Termux patch branch.
Release-only workflow files and metadata under
.githubwere restored to the destination branch versions before opening this PR.