This document maps each exposed feature path to its current bundle target and patch intent.
Use it before changing regexes, adding a new feature target, or adapting to a new Codex build.
launch uses these target definitions for the public runtime path. Runtime launch applies matching replacements in memory through the local CDP session and leaves the app bundle untouched. Legacy file-patch, archive rewrite, re-sign, and restore flows have been removed.
The same renderer assets may be requested with different app:// URL shapes. Current 26.513.20950 uses app://-/assets/*.js; older assumptions used app://-/webview/assets/*.js. Runtime matchers must account for both when CDP Fetch interception changes.
Source layout:
src/targets/speed.mtsowns Settings Fast,/fast, and composer Speed target definitions.src/targets/plugins.mtsowns Plugins sidebar, page, detail, install, modal, and composer mention target definitions.src/targets/models.mtsowns GPT-5.5 model-list bridge targets.src/targets/builders.mtsowns shared target-spec builders.src/patcher-targets.mtsaggregates the feature target modules for runtime launch.src/patch-engine.mtsapplies target specs to intercepted JavaScript bodies.
| Feature | Target label | Current file | Needle | Patch intent |
|---|---|---|---|---|
| Settings-side Fast control | Speed setting |
general-settings-*.js |
settings.agent.speed.label |
Remove the guarded Fast-settings early return. |
Fast service-tier allowance on 26.601.21317, 26.602.30954, 26.602.40724, 26.602.71036, and 26.608.12217 |
Speed service tier allowance |
use-service-tier-settings-*.js |
featureRequirements?.fast_mode |
Keep the official ChatGPT fast_mode requirement check while allowing non-ChatGPT auth methods to compute and persist a Fast service tier. |
Composer /fast slash command |
Fast slash command |
index-*.js or composer-*.js |
composer.speedSlashCommand.title |
Force the slash command entry to be enabled. |
Composer Speed menu on 26.415.40636 and 26.417.41555 |
Add-context Speed menu |
use-model-settings-*.js |
composer.addContext.speed.option.fast.description |
Force the menu gate to enabled so the Speed submenu renders. |
Composer Speed menu on 26.422.21637, 26.422.30944, 26.422.62136, 26.422.71525, 26.429.20946, 26.429.30905, 26.429.61741, 26.506.21252, 26.506.31421, 26.513.20950, 26.513.31313, 26.519.22136, 26.519.31651, 26.519.41501, 26.519.81530, 26.527.31326, 26.527.60818, 26.601.21317, 26.602.30954, 26.602.40724, 26.602.71036, and 26.608.12217 |
Composer Intelligence Speed menu |
index-*.js or composer-*.js |
composer.intelligenceDropdown.speed.title |
Force the Intelligence dropdown speed gate to enabled so the Speed submenu renders. |
| Plugins sidebar access | Plugins access |
index-*.js or a nearby sidebar asset |
sidebarElectron.pluginsDisabledTooltip |
Remove the API-key gate for both the disabled Plugins nav item and any adjacent unified Skills/Plugins label state in the matched local assignments. |
Plugins page content on 26.429.20946, 26.429.30905, 26.429.61741, 26.506.21252, 26.506.31421, 26.513.20950, 26.513.31313, 26.519.22136, 26.519.31651, 26.519.41501, 26.519.81530, 26.527.31326, and 26.527.60818 |
Plugins page content |
skills-page-*.js |
skills.pluginsAuthBlockedToast.title |
Force the /skills route to render the Plugins page content instead of falling back to the skills-only view for API-key users. |
Plugin detail deep links on 26.429.20946, 26.429.30905, 26.429.61741, 26.506.21252, 26.506.31421, 26.513.20950, 26.513.31313, 26.519.22136, 26.519.31651, 26.519.41501, 26.519.81530, 26.527.31326, and 26.527.60818 |
Plugin detail access |
plugin-detail-page-*.js |
pluginDeepLinkAuthBlocked |
Remove the API-key redirect that sends plugin detail deep links back to /skills. |
Plugin install buttons on 26.429.20946, 26.429.30905, 26.429.61741, 26.506.21252, 26.506.31421, 26.513.20950, 26.513.31313, 26.519.22136, 26.519.31651, 26.519.41501, 26.519.81530, 26.527.31326, 26.527.60818, 26.601.21317, 26.602.30954, 26.602.40724, 26.602.71036, and 26.608.12217 |
Plugin install availability |
use-plugin-install-flow-*.js, plugins-availability-*.js, or check-plugin-availability-*.js |
plugins.install.connectorUnavailable or connector-unavailable |
Stop the aggregate connector-unavailable state from disabling the top-level install action while preserving the disabled-by-admin block. |
Plugin detail app connection on 26.601.21317, 26.602.30954, 26.602.40724, 26.602.71036, and 26.608.12217 |
Plugin detail app connect |
check-plugin-availability-*.js |
directoryApps |
Fall back to plugin-declared apps when the directory app list is unavailable so installed plugin detail pages still render app connect rows. |
Plugin install modal details on 26.429.20946, 26.429.30905, 26.429.61741, 26.506.21252, 26.506.31421, 26.513.20950, 26.513.31313, 26.519.22136, 26.519.31651, 26.519.41501, 26.519.81530, 26.527.31326, 26.527.60818, 26.601.21317, 26.602.30954, 26.602.40724, 26.602.71036, and 26.608.12217 |
Plugin install modal content |
use-plugin-install-flow-*.js or plugins-availability-*.js |
plugins.installModal.about |
Keep the modal's basic plugin information visible for ON_INSTALL app plugins instead of relying only on connector disclosure data. |
Plugin post-install app connection on 26.601.21317, 26.602.30954, 26.602.40724, 26.602.71036, and 26.608.12217 |
Plugin post-install app connect |
use-plugin-install-flow-*.js |
appsNeedingAuth |
Do not close the install flow solely because the plugin reports ON_USE auth when apps still need auth, fall back to plugin-declared apps if the install response omits app auth rows, and auto-open the single required app's Connect <App> modal. |
Composer @ plugin mentions on 26.513.20950 and 26.513.31313 |
Composer plugin mentions |
prosemirror-*.js |
composer.atMentionList.pluginsLoading |
Remove the extra shared-with-me remote marketplace request so plugin mentions can use local and already available plugin results under API-key auth. |
Shared plugin marketplace prefetch on 26.601.21317, 26.602.30954, 26.602.40724, 26.602.71036, and 26.608.12217 |
Composer plugin mentions |
app-prefetch-impl-*.js |
additionalMarketplaceKinds |
Remove the startup shared-with-me remote marketplace prefetch while preserving workspace-directory plugin prefetch. |
Curated OpenAI plugin catalog on 26.601.21317, 26.602.30954, 26.602.40724, 26.602.71036, and 26.608.12217 |
Plugins catalog visibility |
use-plugins-*.js |
openai-curated-marketplaces-hidden |
Keep the curated OpenAI plugin catalog visible for custom API users instead of showing the limited-catalog placeholder. |
GPT-5.5 model-list entry on 26.422.21637 |
GPT-5.5 model list |
index-*.js |
"list-models-for-host" |
Wrap the app bridge model-list handler so it appends a Codex-shaped gpt-5.5 entry when the returned list does not already include it. |
GPT-5.5 model-list entry on 26.422.21637 |
GPT-5.5 model query selector |
font-settings-*.js |
modelsByType |
Append the same Codex-shaped gpt-5.5 entry after the model query selector filters raw models into modelsByType.models. |
- On
26.422.30944and later builds,codexfastdoes not apply theGPT-5.5 model listorGPT-5.5 model query selectortargets because GPT-5.5 is expected to be visible through the official app path from that version onward. - On
26.422.62136, the Settings-side Fast target remains ingeneral-settings-*.js, but the service-tier hook changed toxe(). - On
26.422.71525, the Settings-side Fast target remains ingeneral-settings-*.js, but the availability/service-tier hook shape changed toN()withye(). The composer Intelligence Speed gate changed from_f()togf()withYp(), and the Plugins experiment helper changed from$f("533078438")toQf("533078438"). - On
26.429.20946, the Settings-side Fast target remains ingeneral-settings-*.js, but the availability/service-tier hook shape changed tode()withVe(). The/fastslash command and Intelligence Speed target moved tocomposer-*.js; Intelligence Speed now renders from aqs(...)gate. Plugins usesms("533078438")withed(authMethod)in the sidebar, and also has separate/skillspage-content, plugin-detail redirect, plugin-install availability, and plugin-install modal content gates. - On
26.429.30905, the26.429.20946target mapping still applies with renamed asset files. The Intelligence Speed gate still usesqs(...), but the adjacentzr(...)selector local changed, so the matcher accepts that minified selector name instead of a single hard-coded local. - On
26.429.61741, the26.429.30905target mapping still applies with the same inspected asset file names and gate signatures. - On
26.506.21252, the Settings-side Fast target moved togeneral-settings-BNOywoSY.jsand now usesie()for availability withde()as the service-tier hook. The/fastslash command and Intelligence Speed target moved tocomposer-D82P7v-B.js; Intelligence Speed now renders from ava(...)gate next tofi(_T,n). Plugins sidebar access moved toapp-main-DOFYRRSd.jsand usesrs("533078438"),Xc(authMethod), andSe({hostId:eo}). Plugin install gates moved toplugins-availability-DMayGLTU.js. - On
26.506.31421, the26.506.21252target mapping still applies with renamed assets. The Plugins sidebar access target now usesQo("533078438")andNc({hostId:Ya})while retaining theXc(authMethod)API-key gate. - On
26.513.20950, the Settings-side Fast target moved togeneral-settings-Bvwhh0-i.jsand now usesse()for availability withfe()as the service-tier hook. The/fastslash command and Intelligence Speed target moved tocomposer-CL8HPtlL.js; Intelligence Speed now renders through an inlineve=v?...:nullassignment. Plugins sidebar access moved toapp-main-Dsg36Y4q.jsand usesIs("533078438"),Ml(authMethod), andhl({hostId:Io}). Plugin install availability moved tocheck-plugin-availability-Cl1_8Dsf.js. Composer@plugin mentions moved throughprosemirror-DbRBBq50.jsand requestadditionalMarketplaceKinds:[\shared-with-me`]`. - On
26.513.31313, the26.513.20950target mapping still applies with renamed assets. Intelligence Speed still uses the inlineve=v?...:nullassignment, but the render component local changed fromKRtoqR. Plugins sidebar access usesec("533078438"),Xl(authMethod), andNl({hostId:Qo}). Composer@plugin mentions now requestadditionalMarketplaceKinds:s?[\shared-with-me`]:[], wheresis theN("1269116100")` feature flag result. - On
26.519.22136, the Settings-side Fast target moved togeneral-settings-BZV2EA65.jsand now usesxe()for availability withfe()as the service-tier hook plus anavailableOptions.length<=1fallback guard. The/fastslash command is generated from service-tier slash commands incomposer-C6IpJrmm.js. Intelligence Speed now renders throughW=v&&h.availableOptions.length>1?...:null; the patch removes only the Fast availability guard and preserves the option-count guard. Plugins sidebar access usesLi("533078438"),Cc(authMethod), andbs({hostId:Tt}); plugin install modal content moved touse-plugin-install-flow-B_gXb-Jd.js. - On
26.519.31651, the26.519.22136target mapping still applies with renamed assets:composer-BBBqeSy_.jsandapp-main-BsJzES7e.js. The Settings, Plugins page content, plugin detail, install availability, and install modal target files match build3003. - On
26.519.41501, the26.519.22136target mapping still applies with renamed assets:general-settings-D_BmV12Y.js,composer-D0cvMZjq.js,app-main-DG-Mf4Wj.js,skills-page-C8PW4EqX.js,plugin-detail-page-jAJa26RM.js, anduse-plugin-install-flow-IT_xMrDV.js. Plugin install availability still usescheck-plugin-availability-6p9UsIaB.js. - On
26.519.81530, the26.519.22136target mapping still applies with renamed assets:general-settings-ChHT-8De.js,composer-EYkAbDY0.js,app-main-BnTSnuSB.js,skills-page-iJXlhk3u.js,plugin-detail-page-txpGRO8P.js, anduse-plugin-install-flow-BqDhdae4.js. Plugin install availability moved tocheck-plugin-availability-CKUOqQro.js. - On
26.527.31326, the Settings-side Fast target moved togeneral-settings-BqYyun_1.jsand now usesje()for availability with_e()as the service-tier hook plus the preservedavailableOptions.length<=1fallback guard. The/fastslash command and Intelligence Speed target moved tocomposer-zFOdryLS.js. Plugins sidebar access moved toapp-main-BxvNtdQT.jsand usesxa("533078438"),wl(authMethod), andmc({hostId:mr}); page content, detail access, install availability, and modal content moved toskills-page-Cqn6vECJ.js,plugin-detail-page-CETDWYs4.js,check-plugin-availability-fTZpqnCL.js, anduse-plugin-install-flow-BXFieYft.js. - On
26.527.60818, the26.527.31326target mapping still applies with renamed assets:general-settings-Bt2lh7rT.js,composer-CwxGJF3C.js,app-main-BwpsB7rB.js,skills-page-BIZqKbZI.js,plugin-detail-page-uf22h4TJ.js,check-plugin-availability-CDJyCxkN.js, anduse-plugin-install-flow-DpUQcozA.js. Plugins sidebar access now useslc(authMethod)andhc({hostId:mr}). - On
26.601.21317, the Settings-side Fast target moved togeneral-settings-DobuGNrH.jsand uses a destructuredisServiceTierAllowedgate withxe()service-tier settings plus the preservedavailableOptions.length<=1fallback guard. The shared service-tier allowance hook moved touse-service-tier-settings-*.jsand must be patched so custom API users can actually compute and persist a Fast service tier. The/fastslash command and Intelligence Speed target moved tocomposer-CUO1FiyC.js; Intelligence Speed now uses a boolean_&&serviceTierSettings.availableOptions.length>1gate. The old Plugins sidebar, page-content, and detail API-key gates are absent in the inspected bundle, so runtime launch no longer requires thePlugins accesstarget for this exact build. Plugin install availability and detail app-connect fallback moved tocheck-plugin-availability-C1II8bXB.js; install modal disclosure content and post-install app connect flow moved touse-plugin-install-flow-C0YRtVkW.js; shared plugin marketplace prefetch moved toapp-prefetch-impl-CvoY4gd-.js; and curated OpenAI plugin catalog visibility is gated inuse-plugins-BKOuT9XR.js. - On
26.602.30954, the26.601.21317target mapping still applies with renamed assets:general-settings-DGJ5NwEx.js,composer-B7sGHJVq.js,check-plugin-availability-DzefvT4E.js,use-plugin-install-flow-Dizh5Oce.js,use-plugins-D190QcN7.js, andapp-prefetch-impl-lZAOgYgS.js. The post-install app-connect session setter changed from the earlierF({apps:...})shape to another minified local, so the apps replacement captures that setter name instead of hard-coding it. - On
26.602.40724, the26.602.30954target mapping still applies. The inspected target files are stillgeneral-settings-DGJ5NwEx.js,composer-B7sGHJVq.js,check-plugin-availability-DzefvT4E.js,use-plugin-install-flow-Dizh5Oce.js, anduse-plugins-D190QcN7.js; service-tier allowance is inuse-service-tier-settings-Dnu8YT3x.js, and shared plugin marketplace prefetch moved toapp-prefetch-impl-DnQBF2sE.js. - On
26.602.71036, the26.602.40724target mapping still applies with renamed assets:general-settings-20gruT7U.js,composer-BVAB1vz9.js,use-service-tier-settings-CZz5xU_T.js,check-plugin-availability-CrPVurZq.js,use-plugin-install-flow-fF2AB99L.js,use-plugins-C_eNkElf.js, andapp-prefetch-impl-CEVuyrmZ.js. - On
26.608.12217, the26.602.71036target mapping still applies with renamed assets:general-settings-CuvKPfoV.js,composer-D1QtVouy.js,use-service-tier-settings-C421Blkq.js,check-plugin-availability-U7DaYfLx.js,use-plugin-install-flow-BgKqiNxL.js,use-plugins-DBCbdcYi.js, andapp-prefetch-impl-BAy3guSD.js.
- If a feature target moves to a new bundle file, update this document and the relevant bundle note together.
- If a patch changes from "force enabled" to another strategy, record the new intent here.
- Keep this file high-level. Put build-specific notes in
docs/bundle-notes/.