> ## Documentation Index
> Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Codex पर्यवेक्षण

# Codex पर्यवेक्षण

## लक्ष्य

Codex पर्यवेक्षण OpenClaw ऑपरेटर को नेटिव Codex सत्र खोजने और,
सुरक्षित होने पर, सामान्य OpenClaw Chat सतह के माध्यम से एक स्थानीय ब्रांच बनाने देता है।
Codex App Server थ्रेड और मॉडल-लूप का स्वामी बना रहता है। OpenClaw
फ़्लीट कैटलॉग, प्रमाणित ऑपरेटर UI, सत्र बाइंडिंग और चैनल डिलीवरी प्रदान करता है।

यह सुविधा आधिकारिक `codex` Plugin से संबंधित है। कोई अलग
Supervisor Plugin या दूसरा Codex प्रोटोकॉल कार्यान्वयन नहीं है।

## उत्पाद सीमा

जब भी Codex Plugin सक्रिय होता है, कैटलॉग पंजीकृत होता है, जब तक कि नेटिव सत्र
खोज को इससे स्पष्ट रूप से अक्षम न किया गया हो:

```text theme={"theme":{"light":"min-light","dark":"min-dark"}}
plugins.entries.codex.config.sessionCatalog.enabled = false
```

एजेंट-सामना पर्यवेक्षण टूल इससे सक्षम करें:

```text theme={"theme":{"light":"min-light","dark":"min-dark"}}
plugins.entries.codex.config.supervision.enabled = true
```

सक्रिय प्रारंभिक उत्पाद जानबूझकर दीर्घकालिक फ़्लीट
योजना से छोटा है:

* केवल गैर-संग्रहीत Codex थ्रेड सूचीबद्ध करें।
* स्थिर होस्ट पहचान के अनुसार स्थानीय और सहमति-प्राप्त युग्मित-नोड पंक्तियों को समूहित करें।
* संग्रहीत या निष्क्रिय Gateway-स्थानीय
  थ्रेड से एक सामान्य, मॉडल-लॉक किया हुआ Chat ब्रांच बनाएँ, पहले टर्न पर उसका पूर्ण Codex हार्नेस थ्रेड शुरू करें, या किसी पूर्व ब्रांच के लिए बनाया गया Chat
  खोलें।
* केवल स्पष्ट
  कोई-अन्य-रनर-नहीं पुष्टि के बाद संग्रहीत या निष्क्रिय Gateway-स्थानीय थ्रेड को संग्रहित करें।
* नए-ब्रांच या संग्रह नियंत्रणों के बिना सक्रिय स्थानीय स्रोत दिखाएँ, लेकिन
  मौजूदा पर्यवेक्षित Chat को खोलने की अनुमति देते रहें।
* मुख्य साइडबार में प्रत्येक होस्ट की नवीनतम पंक्तियाँ दिखाएँ, सत्र पृष्ठ पर पूर्ण कैटलॉग रखें,
  और स्थानीय तथा युग्मित-नोड पंक्तियों के लिए सीमित, कर्सर-पृष्ठांकित ट्रांसक्रिप्ट रीड प्रदान करें।
* कैटलॉग विफलताओं को होस्ट के अनुसार पृथक रखें।

कैटलॉग गैर-संग्रहीत संग्रह है। इसमें कोई पंक्ति फिर भी
निष्क्रिय, सक्रिय, `notLoaded`, या त्रुटि टर्न स्थिति में हो सकती है।

एजेंट-सामना पर्यवेक्षण वैकल्पिक बना रहता है। निर्देशित ऑनबोर्डिंग, नेटिव Codex इंस्टॉलेशन
पहचान सफल होने और चयनित इन्फ़रेंस बैकएंड के लाइव जाँच में सफल होने के बाद, इसे इंस्टॉल और सक्षम करने का प्रयास करती है,
चाहे उपयोगकर्ता कोई भी प्राथमिक बैकएंड चुने। पर्यवेक्षण केवल तभी सक्रिय होता है जब वह अवसरवादी Plugin सेटअप
सफल होता है। स्पष्ट रूप से अक्षम Plugin, नीति अवरोध, या
`supervision.enabled: false` पर्यवेक्षण टूल के लिए प्रामाणिक रहता है, लेकिन
ऑपरेटर सत्र कैटलॉग को अक्षम नहीं करता। `sessionCatalog.enabled: false`
ऑपरेटर खोज और युग्मित-नोड कैटलॉग कमांड अक्षम करता है; Codex
प्रोवाइडर और हार्नेस सक्रिय रहते हैं।

## स्वामित्व

`codex` Plugin सभी Codex App Server व्यवहार का स्वामी है:

* एंडपॉइंट खोज और कनेक्शन जीवनचक्र
* प्रोटोकॉल आरंभीकरण और संस्करण जाँच
* थ्रेड सूची, रीड, पुनः आरंभ, संग्रह और इवेंट प्रबंधन
* अनुमोदन और उपयोगकर्ता-इनपुट ब्रिज
* OpenClaw सत्रों से नेटिव थ्रेड बाइंडिंग
* जारी रखने के बाद केवल-Codex मॉडल और हार्नेस प्रवर्तन

Control UI और Gateway उस Plugin-स्वामित्व वाली सेवा का उपयोग करते हैं। वे
Codex रोलआउट फ़ाइलों को सीधे नहीं पढ़ते और कोई अन्य App Server क्लाइंट लागू नहीं करते।

डिफ़ॉल्ट स्थानीय टोपोलॉजी है:

```text theme={"theme":{"light":"min-light","dark":"min-dark"}}
Codex Desktop -> निजी stdio App Server -> उपयोगकर्ता का Codex होम
                                             ^
OpenClaw Codex Plugin -> पर्यवेक्षण App Server कनेक्शन
  (डिफ़ॉल्ट रूप से प्रबंधित उपयोगकर्ता-होम stdio; स्पष्ट appServer सेटिंग्स का पालन किया जाता है)
  -> निष्क्रिय स्रोत कैटलॉग और रीड
  -> स्नैपशॉट पिन -> कैनोनिकल appServer-स्रोत ब्रांच
  -> दृश्यमान-इतिहास इंजेक्शन और बाद का प्रत्येक पर्यवेक्षित Chat टर्न

सामान्य OpenClaw Codex सत्र -> डिफ़ॉल्ट रूप से प्रबंधित एजेंट-होम stdio
  -> सामान्य पूर्ण हार्नेस थ्रेड -> OpenClaw Chat और चैनल डिलीवरी
```

पर्यवेक्षण सक्षम करने से सामान्य Codex हार्नेस नहीं बदलता: वह डिफ़ॉल्ट रूप से
एजेंट-स्कोप्ड रहता है। अलग पर्यवेक्षण कनेक्शन डिफ़ॉल्ट रूप से
प्रबंधित उपयोगकर्ता-होम stdio का उपयोग करता है, इसलिए उसका कैटलॉग और स्नैपशॉट संचालन नेटिव
संग्रहीत थ्रेड देखता है। स्पष्ट `appServer` कनेक्शन सेटिंग्स का पालन किया जाता है। जब
`homeScope` सेट नहीं होता, तब पर्यवेक्षण कनेक्शन इसे stdio
या Unix के लिए `"user"` और WebSocket के लिए `"agent"` में रिज़ॉल्व करता है। `appServer.homeScope: "user"`
को केवल तभी स्पष्ट रूप से सेट करें जब सामान्य हार्नेस को भी नेटिव Codex
होम साझा करना चाहिए। Codex साइडबार समूह से अपनाया गया Chat इसका अपवाद है: उसकी निजी
पर्यवेक्षण बाइंडिंग स्रोत रीड, कैनोनिकल ब्रांच निर्माण और बाद के
टर्न को पर्यवेक्षण कनेक्शन पर रखती है। लाइव स्थिति और स्वामित्व
प्रक्रिया-स्थानीय रहते हैं; OpenClaw की पर्यवेक्षण प्रक्रिया के लिए अज्ञात थ्रेड `notLoaded`
होता है, भले ही Codex Desktop उसे सक्रिय रूप से चला रहा हो।

Codex में अलग इंस्टॉलर-प्रबंधित
बूटस्ट्रैप अनुबंध वाला एक प्रयोगात्मक कैनोनिकल स्थानीय डेमन है। इस सुविधा को उस डेमन को निहित रूप से बूटस्ट्रैप नहीं करना चाहिए, उस पर दावा नहीं करना चाहिए,
या उसकी उपस्थिति नहीं माननी चाहिए।

## कैटलॉग प्रवाह

जेनेरिक Gateway विधि `sessions.catalog.list`, `codex`
कैटलॉग प्रोवाइडर को डिस्पैच करती है, जो हमेशा `archived: false` का अनुरोध करता है और App Server को
उसका इंटरैक्टिव-स्रोत डिफ़ॉल्ट लागू करने देता है: `cli`, `vscode`, Atlas, और ChatGPT। यह
इनका संयोजन करता है:

1. पर्यवेक्षण App Server से Gateway-स्थानीय `thread/list` परिणाम,
   जो डिफ़ॉल्ट रूप से प्रबंधित उपयोगकर्ता-होम stdio का उपयोग करता है।
2. प्रत्येक कनेक्टेड, सहमति-प्राप्त नोड से `codex.appServer.threads.list.v1` परिणाम।

ट्रांसक्रिप्ट चयन स्थानीय रूप से `itemsView: "full"` के साथ `thread/turns/list` या
चयनित नोड पर संस्करणित `codex.appServer.thread.turns.list.v1` कमांड का उपयोग करता है।
प्रत्येक प्रतिक्रिया में अधिकतम 20 स्थायी टर्न और अपारदर्शी
आगे/पीछे कर्सर होते हैं। Control UI नवीनतम-पहले पृष्ठों का अनुरोध करता है, प्रत्येक पृष्ठ को
कालानुक्रमिक क्रम में रेंडर करता है, और पुराने पृष्ठों को आगे जोड़ता है। यह कभी भी
असीमित `thread/read` पर फ़ॉलबैक नहीं करता। OpenClaw किसी भी क्रमबद्ध आइटम पृष्ठ को
नोड या Gateway ट्रांसपोर्ट पार करने से पहले ही अस्वीकार कर देता है, यदि वह 20 MiB से बड़ा हो।

नेटिव macOS युग्मित-नोड कार्यान्वयन केवल अनसेट/डिफ़ॉल्ट या
स्पष्ट `appServer.transport: "stdio"` को अनसेट/डिफ़ॉल्ट पर्यवेक्षण स्कोप या
स्पष्ट `appServer.homeScope: "user"` के साथ समर्थन देता है। यह कॉन्फ़िगर किए गए `command`, `args`,
और सामान्यीकृत `clearEnv` को चाइल्ड प्रक्रिया में ले जाता है। `"unix"`, `"websocket"`,
या स्पष्ट `homeScope: "agent"` के साथ, यह न तो कैटलॉग क्षमता
और न ही कमांड का विज्ञापन करता है; प्रत्यक्ष आह्वान भी सुरक्षित रूप से विफल होता है। इसे एजेंट-स्कोप्ड कॉन्फ़िगरेशन के लिए उपयोगकर्ता का
Codex होम कभी उजागर नहीं करना चाहिए और न ही स्पष्ट एंडपॉइंट के स्थान पर स्थानीय stdio
का उपयोग करना चाहिए।

कैटलॉग प्रोजेक्शन पहचानकर्ताओं, शीर्षक, cwd, स्थिति, सक्रिय प्रतीक्षा
फ़्लैग, टाइमस्टैम्प, स्रोत, मॉडल प्रोवाइडर, Codex संस्करण और Git ब्रांच को सामान्यीकृत करता है। यह
ट्रांसक्रिप्ट पूर्वावलोकन, टर्न, रोलआउट पथ, Codex होम पथ,
Git रिमोट, कमिट SHA, रॉ एंडपॉइंट या रॉ App Server त्रुटियाँ वापस नहीं करता। ट्रांसक्रिप्ट
प्रतिक्रियाओं में केवल स्पष्ट रूप से अनुरोधित App Server आइटम पृष्ठ और उसके
अपारदर्शी कर्सर होते हैं।

होस्ट विफलताएँ प्रत्येक होस्ट परिणाम तक स्थानीय रहती हैं। ऑफ़लाइन नोड या अनुपलब्ध
स्थानीय App Server पृष्ठ से स्वस्थ होस्ट नहीं मिटाता। कनेक्टिविटी
होस्ट गुण है, थ्रेड स्थिति नहीं: विफल होस्ट परिणाम में कोई नया
सत्र पंक्ति नहीं होती और वह नेटिव थ्रेड पर `offline` प्रोजेक्ट नहीं करता।

Control UI क्रमिक कैटलॉग अपडेट का अनुरोध करता है। प्रत्येक स्थानीय या युग्मित होस्ट
तब प्रकट होता है जब उसकी अपनी App Server सूची पूरी होती है; समग्र प्रतिक्रिया
संगतता और पुनर्प्राप्ति स्नैपशॉट बनी रहती है। दृश्यमान पृष्ठ
कनेक्टिविटी परिवर्तन के बाद, फ़ोकस होने पर, और अधिकतम हर 30 सेकंड में समन्वित होता है,
तथा परिवर्तनों के बाद एक तेज़ पास होता है। इसलिए किसी अन्य क्लाइंट में बनाए गए नेटिव Codex सत्र
OpenClaw स्टोरेज में आयात किए बिना अंततः खोज लिए जाते हैं।

कैटलॉग खोज निष्क्रिय है। मेटाडेटा सूचीबद्ध करने या पढ़ने पर
`thread/resume` को कॉल नहीं करना चाहिए, OpenClaw क्लाइंट को लाइव थ्रेड अनुरोधों की सदस्यता नहीं देनी चाहिए, या
किसी अनुमोदन का उत्तर नहीं देना चाहिए।

खोज केवल शीर्षक पर और केस-असंवेदनशील है। प्रत्येक लौटाए गए कैटलॉग पृष्ठ के लिए,
Gateway और युग्मित Mac क्वेरी को App Server को भेजे बिना सीमित संख्या में नेटिव पृष्ठ
स्कैन करते हैं, क्योंकि नेटिव खोज ट्रांसक्रिप्ट
पूर्वावलोकनों से भी मेल खा सकती है। लौटाया गया नेटिव कर्सर कॉलर को स्कैन जारी रखने देता है।

## ऑपरेटर CLI सीमा

Plugin तीन Gateway-समर्थित शेल कमांड पंजीकृत करता है:

```text theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw codex sessions [--search <text>] [--host <id>] [--limit <count>] [--cursor <cursor>] [--json] [gateway-options]
openclaw codex continue <thread-id> [--json] [gateway-options]
openclaw codex archive <thread-id> --confirm-no-other-runner [--json] [gateway-options]
```

`[gateway-options]` में `--url <url>`, `--token <token>`, `--timeout <ms>`, और
इनहेरिट किया गया `--expect-final` स्विच शामिल हैं। सत्र सूचीकरण का डिफ़ॉल्ट 75,000 ms है;
continue और archive का डिफ़ॉल्ट 30,000 ms है;
इन यूनरी RPC के लिए `--expect-final` का कोई अतिरिक्त प्रभाव नहीं है। सत्र खोज
केवल शीर्षक पर और केस-असंवेदनशील है; प्रत्येक प्रतिक्रिया सीमित नेटिव पृष्ठ
श्रृंखला स्कैन करती है, और `--cursor` पुराने परिणाम जारी रखता है। सीमा डिफ़ॉल्ट रूप से प्रति होस्ट 50
है और 1 से 100 तक स्वीकार करती है, तथा कर्सर के लिए एक स्थिर `--host`
गंतव्य आवश्यक है। कोई भी कमांड
संग्रहीत/include-archived विकल्प स्वीकार नहीं करता। केवल `sessions` युग्मित होस्ट को लक्ष्य बना सकता है;
`continue` और `archive` हमेशा `hostId: "gateway:local"` भेजते हैं, और archive
के लिए स्पष्ट पुष्टि फ़्लैग आवश्यक है।

शेल नेमस्पेस, इन-Chat `/codex` रनटाइम नेमस्पेस नहीं है। विशेष रूप से,
`/codex sessions --host <node>` एक नोड पर Codex CLI सत्र फ़ाइलें सूचीबद्ध करता है,
`/codex threads` वर्तमान वार्तालाप कनेक्शन के लिए App Server थ्रेड सूचीबद्ध करता है,
और `/codex resume` या `/codex bind` उस वार्तालाप की
बाइंडिंग बदलता है। वे कमांड `sessions.catalog.continue` का स्थान नहीं लेते, और
कोई `/codex continue` या `/codex archive` रनटाइम कमांड नहीं है।

## स्थानीय निरंतरता

संग्रहीत या निष्क्रिय Gateway-स्थानीय पंक्ति के लिए, UI
होस्ट और थ्रेड आईडी के साथ `catalogId: "codex"` का उपयोग करके `sessions.catalog.continue` कॉल करता है।
Plugin:

1. जब स्रोत के पास पहले से कोई पर्यवेक्षित Chat हो, तो उसी का पुनः उपयोग करता है।
2. अन्यथा स्रोत के अंतिम स्थायी टर्मिनल टर्न
   (पूर्ण, बाधित या विफल) तक के सीमित उपयोगकर्ता और सहायक इतिहास को एक नए
   OpenClaw Chat में प्रोजेक्ट करता है और एक लंबित हार्नेस ब्रांच दर्ज करता है।
3. किसी ठोस मॉडल या
   प्रोवाइडर चयन के बजाय लंबित केवल-Codex मॉडल-लॉक नीति तथा निजी पर्यवेक्षण कनेक्शन स्कोप संग्रहीत करता है, और
   OpenClaw `sessionKey` लौटाता है।

इतिहास प्रोजेक्शन दृश्यमान उपयोगकर्ता और सहायक
संदेशों के नवीनतम अंतिम भाग का चयन करता है, जिसकी कठोर सीमाएँ 200 संदेश, कुल 512 KiB UTF-8 टेक्स्ट, और
प्रति संदेश 64 KiB हैं। यह इमेज और स्थानीय-इमेज इनपुट को
`[Image attachment]` से बदलता है, इमेज पेलोड या पथ कभी कॉपी नहीं करता, और रीजनिंग,
टूल कॉल तथा टूल परिणाम छोड़ देता है।

UI उस सत्र कुंजी के साथ सामान्य Chat पर नेविगेट करता है। अभी कोई कैनोनिकल हार्नेस
थ्रेड मौजूद नहीं होता। पहले सामान्य Chat टर्न पर, हार्नेस वास्तविक
Codex अनुमोदन, एलिसिटेशन, इवेंट और डिलीवरी हैंडलर इंस्टॉल करता है, फिर:

1. बिना मॉडल
   या प्रोवाइडर ओवरराइड के नेटिव `thread/fork` कॉल करने और स्थायी स्रोत स्नैपशॉट पिन करने के लिए पर्यवेक्षण कनेक्शन का उपयोग करता है। Codex की वर्तमान
   `ConfigManager` स्थिति मॉडल और प्रोवाइडर चुनती है, और फ़ोर्क प्रतिक्रिया
   वास्तविक जोड़ी बताती है। यदि मॉडल स्रोत में अंतिम दर्ज मॉडल से भिन्न है,
   तो Codex अपनी सामान्य मॉडल-अंतर चेतावनी उत्सर्जित करता है।
2. उसी कनेक्शन पर, `threadSource: "appServer"`, OpenClaw के cwd, नीति, कॉन्फ़िगरेशन, पर्यावरण,
   पूर्ण OpenClaw हार्नेस टूल सतह, और इस प्रारंभिक शुरुआत के लिए फ़ोर्क द्वारा लौटाए गए बिल्कुल उसी मॉडल और प्रोवाइडर के साथ
   कैनोनिकल पूर्ण Codex हार्नेस थ्रेड शुरू करता है।
3. उस कनेक्शन के माध्यम से सीमित दृश्यमान उपयोगकर्ता और सहायक इतिहास
   इंजेक्ट करता है, उसके पर्यवेक्षण स्कोप को हटाए बिना कैनोनिकल बाइंडिंग कमिट करता है,
   टर्न चलाता है, और अस्थायी फ़ोर्क को संग्रहित करता है।

पहले टर्न से पहले, Chat एक दृश्यमान इतिहास मिरर वाली लॉक की गई लंबित ब्रांच होती है; उसके बाद, प्रत्येक मॉडल टर्न पर्यवेक्षण कनेक्शन पर कैनॉनिकल Codex हार्नेस थ्रेड के माध्यम से चलता है। ब्रांच पूर्ण नेटिव रोलआउट क्लोन नहीं है: स्रोत रीजनिंग, टूल कॉल और टूल परिणाम जानबूझकर छोड़े जाते हैं। यदि स्नैपशॉट पिनिंग या कैनॉनिकल थ्रेड निर्माण विफल होता है, तो लंबित ब्रांच पुनः प्रयास योग्य रहती है। बाइंडिंग रेस, अक्षम पर्यवेक्षण, या अनुपलब्ध अथवा बेमेल पर्यवेक्षण कनेक्शन की स्थिति में, सामान्य एजेंट-होम हार्नेस पर फ़ॉलबैक करने के बजाय टर्न चलने से पहले ही कार्रवाई बंद होकर विफल हो जाती है।

यह स्रोत के ऐतिहासिक मॉडल का संरक्षण नहीं, बल्कि Codex-स्वामित्व वाला चयन सुनिश्चित करता है। फ़ोर्क द्वारा लौटाई गई जोड़ी कैनॉनिकल थ्रेड प्रारंभ करने के लिए उपयोग होती है, और Codex उस थ्रेड के नेटिव मॉडल तथा प्रदाता को स्थायी रूप से सहेजता है। बाद के रेज़्यूम में OpenClaw मॉडल और प्रदाता ओवरराइड छोड़ दिए जाते हैं, इसलिए Codex सहेजी गई जोड़ी पुनर्स्थापित करता है। यदि कोई अलग नेटिव Codex नियंत्रण कैनॉनिकल थ्रेड को बदलता है, तो OpenClaw उस नेटिव स्थायी चयन को स्वीकार करता है। बाहरी OpenClaw मॉडल और फ़ॉलबैक शृंखला कभी उसका स्थान नहीं लेते।

पर्यवेक्षित मॉडल-लॉक Chat के लिए मॉडल परिवर्तन, सेशन हटाना और सेशन रीसेट/नया संचालन बंद होकर विफल होते हैं। `/codex model <model>`, `/codex
bind`, `/codex resume` (Node `--bind here` सहित), और `/codex detach` या
`/codex unbind` में बदलाव भी बंद होकर विफल होते हैं, क्योंकि वे बाइंडिंग को बदलते या साफ़ करते हैं। `/codex model` क्वेरी और `/codex fast`, `/codex permissions`, तथा `/codex
threads` उपलब्ध रहते हैं। `codex_threads` एजेंट टूल नया फ़ोर्क संलग्न नहीं कर सकता या बाउंड नेटिव थ्रेड को आर्काइव नहीं कर सकता। सूची और केवल-मेटाडेटा रीड उपलब्ध रहते हैं; ट्रांसक्रिप्ट फ़ील्ड के लिए `supervision.allowRawTranscripts` आवश्यक है, जबकि
नाम बदलने, अनआर्काइव करने, अलग किए गए फ़ोर्क और असंबंधित थ्रेड के आर्काइव के लिए
`supervision.allowWriteControls` आवश्यक है। कोई भी विकल्प लॉक की गई बाइंडिंग को नहीं बदल सकता।
OpenClaw प्रविष्टि हटाने या रीसेट करने पर अन्यथा नेटिव बाइंडिंग हट जाती और Codex-जैसे दिखने वाले सेशन के पीछे एक सामान्य थ्रेड बन जाता या उसकी अनुमति मिल जाती।
इसलिए प्रतिधारण रखरखाव मॉडल-लॉक प्रविष्टियों को तब भी सुरक्षित रखता है, जब वे सामान्य आयु, संख्या या डिस्क-बजट सीमाओं से अधिक हों। स्वामी Plugin को अक्षम या अनइंस्टॉल करने पर भी लॉक और Plugin स्वामित्व मार्कर बने रहते हैं। वही Plugin दोबारा सक्षम होने तक Chat अनुपलब्ध रहता है और बंद होकर विफल होता है; क्लीनअप इसे कभी सामान्य मॉडल सेशन में नहीं बदलता।

इस कार्रवाई द्वारा स्रोत को कभी रेज़्यूम या परिवर्तित नहीं किया जाता। अस्थायी फ़ोर्क एक स्नैपशॉट पिन करता है; वह स्थायी निरंतरता थ्रेड नहीं है। पहले टर्न पर अलग कैनॉनिकल हार्नेस थ्रेड प्रारंभ करने से OpenClaw केवल इसलिए प्रतिस्पर्धी स्रोत लेखक नहीं बनता कि प्रोसेस-लोकल स्थिति Desktop-स्वामित्व वाला टर्न देखने में विफल रही। दृश्यमान-इतिहास मिरर और पिन किया गया स्नैपशॉट सक्रिय स्रोत में अभी तक पूरा न हुआ कार्य छोड़ सकते हैं। मूल CLI, VS Code,
Atlas या ChatGPT स्रोत नेटिव और OpenClaw दोनों कैटलॉग के लिए पात्र रहता है।
कैनॉनिकल ब्रांच पर्यवेक्षण स्टोर में नेटिव Codex थ्रेड बनी रहती है,
लेकिन नेटिव क्लाइंट इसके `appServer` स्रोत प्रकार को फ़िल्टर कर सकते हैं, इसलिए Codex Desktop
दृश्यता कोई अनुबंध नहीं है।

## आर्काइव व्यवहार

संग्रहीत या निष्क्रिय Gateway-लोकल पंक्ति के लिए, `sessions.catalog.archive` के साथ
`catalogId: "codex"` को स्पष्ट `confirmNoOtherRunner: true` की आवश्यकता होती है, यह वर्तमान प्रोसेस-लोकल
स्थिति को नए सिरे से पढ़ता है, केवल `idle` या `notLoaded` के लिए आगे बढ़ता है, नेटिव `thread/archive` को कॉल करता है,
और Codex द्वारा संचालन स्वीकार करने के बाद ही सफलता लौटाता है। इसके बाद पंक्ति
गैर-आर्काइव कैटलॉग से निकल जाती है।

नए रीड से मिली सक्रिय या त्रुटि स्थिति आर्काइव को अस्वीकार करती है। स्रोत से आरंभ हो रही या लंबित पर्यवेक्षित ब्रांच भी ऐसा करती है: स्रोत को आर्काइव करने से पहले पहला Chat टर्न उसकी कैनॉनिकल ब्रांच को मूर्त रूप देना आवश्यक है। ठीक लक्ष्य के लिए ज्ञात सक्रिय OpenClaw बाइंडिंग स्वामी या कोई भी गैर-आर्काइव उत्पन्न वंशज भी आर्काइव को अस्वीकार करता है। OpenClaw, Codex के प्रयोगात्मक
`thread/list ancestorThreadId` संबंध का पृष्ठांकन करता है और अनुरोध या प्रतिक्रिया त्रुटियों, कर्सर या थ्रेड चक्रों तथा सुरक्षा-सीमा समाप्ति पर बंद होकर विफल होता है। नेटिव आर्काइव लोड किए गए पैरेंट और वंशज कार्य को बंद कर सकता है, इसलिए आर्काइव कोई इंटरप्ट शॉर्टकट नहीं है। रीड, वंशज गणना और आर्काइव कॉल परमाण्विक नहीं हैं।
कोई स्वतंत्र क्लाइंट अब भी ऐसी पंक्ति पर कार्य का स्वामी हो सकता या कार्य शुरू कर सकता है जो स्थानीय रूप से निष्क्रिय या
`notLoaded` दिखाई देती है। जब तक Codex के पास सशर्त आर्काइव या क्रॉस-प्रोसेस लीज़ नहीं होती, कोई-अन्य-रनर-नहीं पुष्टि अज्ञात क्लाइंट और उस रेस को कवर करती है।
युग्मित-Node आर्काइव निषिद्ध है।

Codex कैटलॉग में कोई आर्काइव दृश्य नहीं है। किसी अन्य स्वामी-अधिकृत Codex सतह पर
`thread/unarchive` से पुनर्स्थापित थ्रेड फिर से गैर-आर्काइव कैटलॉग के लिए पात्र हो जाता है।

## सक्रिय थ्रेड सुरक्षा

Codex एक App Server के क्लाइंटों के बीच किसी थ्रेड के बदलावों को क्रमबद्ध करता है, लेकिन यह विशिष्ट क्रॉस-प्रोसेस रनर या अनुमोदन-स्वामी लीज़ उपलब्ध नहीं कराता।
स्वतंत्र stdio App Server समान रोलआउट में जोड़ सकते हैं, जबकि प्रत्येक केवल अपनी इन-मेमोरी स्थिति देखता है। अनुमोदन अनुरोध एक सर्वर के प्रत्येक सब्सक्राइबर तक भी पहुँच सकते हैं, जहाँ पहला मान्य उत्तर अनुरोध पूरा करता है।

इसलिए:

* निष्क्रिय कैटलॉग क्लाइंट अनुमोदनों को सब्सक्राइब या स्वतः अस्वीकार नहीं करते
* वर्तमान में सक्रिय बताई गई पंक्तियाँ न नई ब्रांच दिखाती हैं, न आर्काइव
* मैप न किया गया स्रोत दृश्यमान-इतिहास ब्रांच बन जाता है, जिसका कैनॉनिकल हार्नेस
  थ्रेड स्रोत को कभी रेज़्यूम नहीं करता
* `notLoaded` को अज्ञात गतिविधि के रूप में दिखाया जाता है और केवल
  सूचित कोई-अन्य-रनर-नहीं पुष्टि के बाद आर्काइव किया जा सकता है
* लोकल आर्काइव के लिए उस पुष्टि के साथ नया `idle` या `notLoaded`
  रीड आवश्यक है, साथ ही रीड और आर्काइव के बीच प्रोटोकॉल रेस को स्वीकार किया जाता है

इंटरप्ट और मल्टी-क्लाइंट हैंडऑफ़ भविष्य के उत्पाद निर्णय हैं। सक्रिय पंक्ति दिखाने मात्र से वे निहित नहीं होते।

## युग्मित-Node सीमा

Node इनवोक वर्तमान में केवल अनुरोध/प्रतिक्रिया है। यह सीमित कैटलॉग मेटाडेटा और ट्रांसक्रिप्ट टर्न पृष्ठ सुरक्षित रूप से लौटा सकता है, लेकिन Codex हार्नेस रन के लिए आवश्यक दीर्घकालिक इवेंट स्ट्रीम, अनुमोदन अनुरोध, टूल कॉल, रद्दीकरण और सहायक डेल्टा नहीं ले जा सकता।

इसलिए Node अनुबंध सूची और ट्रांसक्रिप्ट-टर्न पृष्ठों का समर्थन करता है। रिमोट
पंक्तियाँ पठनीय रहती हैं, लेकिन निष्क्रिय स्थिति के बावजूद **जारी रखें** और **आर्काइव** अनुपलब्ध रहते हैं। वास्तविक रिमोट निरंतरता के लिए Node-साइड रनर और स्ट्रीमिंग ब्रिज आवश्यक है, जो लोकल हार्नेस के समान अनुमोदन और बाइंडिंग अपरिवर्तनीयताएँ बनाए रखे।

## अनुमतियाँ

प्रत्येक कंप्यूटर स्थानीय रूप से ऑप्ट-इन करता है। Gateway सक्षम करने से किसी अन्य
Node को उसका Codex मेटाडेटा पढ़ने की अनुमति नहीं मिलती। Node क्षमता को सामान्य युग्मन
और कमांड-नीति अनुमोदन पास करना आवश्यक है।

फ़्लीट सूचीकरण और ट्रांसक्रिप्ट देखना `operator.write` Gateway स्कोप का उपयोग करते हैं,
क्योंकि वे युग्मित Node को इनवोक करते हैं। लोकल निरंतरता और आर्काइव
प्रमाणीकृत ऑपरेटर कार्रवाइयाँ हैं और होस्ट तथा स्थिति जाँच के अधीन रहती हैं।

स्वायत्त एजेंट और स्टैंडअलोन MCP पहुँच अलग हैं। शिप किए गए
`codex_endpoint_probe`, `codex_sessions_list`, `codex_session_read`,
`codex_session_send`, और `codex_session_interrupt` टूल अनुबंधों का स्वामित्व
`codex` Plugin के पास रहता है। पर्यवेक्षण सक्षम होने पर, रॉ `codex_threads` ट्रांसक्रिप्ट
रीड और ट्रांसक्रिप्ट-व्युत्पन्न सूची फ़ील्ड के लिए भी
`supervision.allowRawTranscripts` आवश्यक है; प्रत्येक `codex_threads` फ़ोर्क, नाम बदलने, आर्काइव
या अनआर्काइव के लिए `supervision.allowWriteControls` आवश्यक है। दोनों नीतियाँ डिफ़ॉल्ट रूप से
अक्षम हैं।

## संगतता

`openclaw doctor --fix`, शिप किए गए `plugins.entries.codex-supervisor`
कॉन्फ़िगरेशन को माइग्रेट करता है, जिसमें एंडपॉइंट और ट्रांसक्रिप्ट/राइट नीतियाँ तथा Plugin
अनुमति/अस्वीकृति संदर्भ शामिल हैं, और उन्हें
`plugins.entries.codex.config.supervision` में ले जाता है। स्पष्ट कैनॉनिकल गंतव्य
मान टकरावों में प्राथमिकता पाते हैं। माइग्रेशन के बाद रनटाइम कोड केवल कैनॉनिकल `codex` Plugin
आकार का उपयोग करता है।

आधिकारिक Plugin ठीक पाँच Supervisor संगतता टूल बनाए रखता है:
`codex_endpoint_probe`, `codex_sessions_list`, `codex_session_read`,
`codex_session_send`, और `codex_session_interrupt`। सेशन सूची डिफ़ॉल्ट रूप से केवल लोड किए गए सेशन दिखाती है; कोई `loaded_only` पैरामीटर नहीं है। `include_stored: true`
गैर-आर्काइव स्थिति-डेटाबेस पंक्तियाँ जोड़ता है, जिन्हें प्रत्येक एंडपॉइंट के लिए `max_stored_sessions` द्वारा सीमित किया जाता है
(डिफ़ॉल्ट 200, स्वीकृत सीमा 1 से 1,000 तक); लोड की गई पंक्तियाँ इस
सेटिंग से सीमित नहीं होतीं। ट्रांसक्रिप्ट-व्युत्पन्न फ़ील्ड और रीड
`allowRawTranscripts` द्वारा नियंत्रित रहते हैं; सेंड और इंटरप्ट `allowWriteControls` द्वारा नियंत्रित रहते हैं।

संगतता सेंड कभी निष्क्रिय थ्रेड शुरू या रेज़्यूम नहीं करता। `mode: "start"` को
हमेशा अस्वीकार किया जाता है; `"auto"` और `"steer"` केवल पठनीय सक्रिय टर्न को निर्देशित करते हैं।
इंटरप्ट के लिए भी सक्रिय पठनीय टर्न आवश्यक है। निष्क्रिय निरंतरता
नेटिव Codex कैटलॉग पर रूट होती है, ताकि पूर्ण हार्नेस अनुमोदन, टूल और बाइंडिंग का स्वामी हो।
स्टैंडअलोन विरासती MCP अडैप्टर आधिकारिक
Plugin से यही टूल रिज़ॉल्व करता है और बनाए रखे गए विरासती नीति एनवायरनमेंट
वेरिएबल का पालन करने वाला एकमात्र पथ है।

जुलाई कैटलॉग UI, Gateway विधि, Node क्षमता और CLI पंजीकरण
पुरानी Plugin आईडी के अंतर्गत शिप नहीं हुए थे। वे दूसरे रनटाइम फ़साड के बिना सीधे `codex` स्वामित्व में जाते हैं।

## भावी कार्य

* रिमोट निरंतरता के लिए Node-साइड स्ट्रीमिंग रनर और इवेंट ब्रिज
* समकालिक क्लाइंट हैंडऑफ़ के लिए स्पष्ट रनर और अनुमोदन-स्वामी लीज़
* रनर-स्वामित्व लीज़ या समकक्ष फ़ेंसिंग उपलब्ध होने के बाद रिमोट आर्काइव
* इंटरप्ट और अधिक समृद्ध सक्रिय-सेशन अवलोकन
* Codex Desktop, CLI और OpenClaw के बीच ऑडिट किया गया हैंडऑफ़

आर्काइव ब्राउज़िंग नियोजित पर्यवेक्षण साइडबार का हिस्सा नहीं है। नेटिव Codex
सतहें आर्काइव थ्रेड के लिए पुनर्प्राप्ति पथ बनी रहती हैं।

## स्वीकृति परीक्षण

* पर्यवेक्षण सक्षम करने पर गैर-संग्रहीत स्थानीय सत्र सूचीबद्ध होते हैं।
* संग्रहीत सत्र कैटलॉग प्रतिक्रिया या UI में कभी दिखाई नहीं देते।
* किसी अन्य होस्ट के विफल होने पर स्वस्थ होस्ट दृश्यमान रहते हैं; अनुपलब्ध होस्ट
  ऑफ़लाइन सत्र स्थिति गढ़ने के बजाय कोई नई पंक्ति नहीं लौटाता।
* संग्रहीत या निष्क्रिय स्थानीय पंक्ति Codex-मात्र मॉडल/रनटाइम
  लॉक वाला Chat प्रतिबिंब बनाती है; पहला टर्न एक अस्थायी स्नैपशॉट को स्थिर करता है और
  प्रामाणिक पूर्ण हार्नेस थ्रेड शुरू करता है, और Continue दोहराने पर मौजूदा Chat खुलता है।
* पहला टर्न स्नैपशॉट फ़ोर्क पर मॉडल/प्रदाता ओवरराइड छोड़ देता है और
  प्रामाणिक शुरुआत को Codex द्वारा लौटाई गई सटीक जोड़ी पर स्थिर करता है, तब भी जब Codex चेतावनी देता है
  कि उसका वर्तमान मॉडल स्रोत के अंतिम दर्ज मॉडल से अलग है।
* लंबित और प्रतिबद्ध पर्यवेक्षित बाइंडिंग स्रोत पहुँच,
  प्रामाणिक ब्रांच निर्माण और प्रत्येक बाद के टर्न के लिए पर्यवेक्षण कनेक्शन का उपयोग करती हैं; सामान्य
  Codex सत्र एजेंट-स्कोप में रहते हैं।
* बाद में फिर से शुरू करने पर OpenClaw मॉडल/प्रदाता ओवरराइड छोड़ दिए जाते हैं, Codex का
  प्रामाणिक स्थायी चयन संरक्षित रहता है, उस थ्रेड में अलग से किए गए मूल बदलाव स्वीकार किए जाते हैं,
  और बाहरी OpenClaw मॉडल या फ़ॉलबैक शृंखला को कभी प्रतिस्थापित नहीं किया जाता।
* पर्यवेक्षण अक्षम होने या बाइंडिंग/कनेक्शन जीवनचक्र खोने पर Chat को
  सामान्य एजेंट-होम हार्नेस में ले जाने के बजाय सुरक्षित रूप से विफलता होती है।
* मूल बाइंडिंग की सुरक्षा करने वाले पर्यवेक्षित मॉडल-लॉक Chat को हटाया नहीं जा सकता।
* Chat अधिकतम 200 उपयोगकर्ता और सहायक संदेशों, कुल 512 KiB और
  प्रति संदेश 64 KiB को प्रतिबिंबित करता है। छवियाँ प्लेसहोल्डर बन जाती हैं; स्रोत तर्क, टूल कॉल,
  टूल परिणाम, छवि पेलोड और स्थानीय पथों की प्रतिलिपि नहीं बनाई जाती।
* ब्रांच प्रवाह स्रोत थ्रेड को कभी फिर से शुरू नहीं करता।
* मूल स्रोत दोनों कैटलॉग के लिए पात्र रहता है। प्रामाणिक मूल
  ब्रांच `appServer` स्रोत प्रकार का उपयोग करती है और उसके Codex Desktop में दिखाई देने की
  गारंटी नहीं है।
* सक्रिय स्थानीय स्रोत ब्रांच नहीं बना सकते या संग्रहीत नहीं किए जा सकते; मौजूदा
  पर्यवेक्षित Chat फिर भी खुल सकता है।
* अज्ञात गतिविधि वाली पंक्तियाँ पुष्टि के बिना ब्रांच बना सकती हैं; संग्रहित करने के लिए
  स्पष्ट पुष्टि आवश्यक है कि कोई अन्य रनर सक्रिय नहीं है।
* आरंभ हो रही या लंबित पर्यवेक्षित ब्रांच वाले स्रोत को तब तक संग्रहीत नहीं किया जा सकता
  जब तक पहला Chat टर्न प्रामाणिक ब्रांच को मूर्त रूप नहीं दे देता।
* सटीक लक्ष्य या किसी गैर-संग्रहीत उत्पन्न वंशज के लिए ज्ञात सक्रिय बाइंडिंग स्वामी
  संग्रह को अवरुद्ध करता है; वंशज गणना की विफलताएँ सुरक्षित रूप से विफल होती हैं, और
  अज्ञात क्लाइंट तथा स्थिति-से-संग्रह की रेस के लिए स्पष्ट पुष्टि की जिम्मेदारी
  बनी रहती है।
* पुष्ट संग्रहीत या निष्क्रिय स्थानीय संग्रह, मूल सफलता के बाद पंक्ति को हटा देता है।
* युग्मित-नोड पंक्तियाँ Continue या Archive के बिना दृश्यमान रहती हैं।
* निष्क्रिय सूचीकरण कभी थ्रेड अनुमोदनों की सदस्यता नहीं लेता या उनका उत्तर नहीं देता।
* पुराना Supervisor कॉन्फ़िगरेशन प्रामाणिक Codex कॉन्फ़िगरेशन स्वरूप में माइग्रेट होता है।
* पुरानी सूची डिफ़ॉल्ट रूप से केवल लोड की जाती है, संग्रहीत गणना उसकी प्रति-एंडपॉइंट
  सीमा का पालन करती है, और संगतता प्रेषण कभी किसी निष्क्रिय थ्रेड को शुरू या फिर से शुरू नहीं करता।
