Narrowing a window moved the panels back and forth: at 800 px the right panel closed while the left one jumped back from 220 to 340 px, then shrank a second time; at 600 px the left panel closed and the right one reappeared, only to close again at 580 px. Widening repeated the sequence in reverse with its own swaps. Narrowing now shrinks the conversation to its minimum, then the right panel to its minimum, where it hides, then the left panel to its minimum, where it hides. Each panel shrinks once and hides at the end of its own compression, so the other panel never changes width at that moment and only the conversation takes the room; widening retraces exactly the same layouts. Each side panel keeps whether the user wants it (opened, or closed while docked) and docks while the window has its room, in a fixed order: the session panel first, the right panel only beside the full session panel. A wanted panel without room hides and returns with the room, so the layout follows the window width alone; a minimizing window's tiny viewport hides both panels and restoring it brings them back. A panel opened without room floats over the conversation; dismissing it keeps the docked choice, and it docks once it has room. A panel closed while docked stays closed. Dismissing a floating panel by clicking outside leaves focus on the clicked control; a panel the layout hides hands focus to its toggle when it held focus. Touch tablets remember the wanted panels per orientation. A floating panel never docks while the window already has its new shape but the orientation has not changed yet, so rotation memory records only the user's choices; the shape is read from the orientation media query, which stays reliable on zoomed, near-square windows. Implementation: `resolveEmbeddedDrawers` docks the right panel only beside the left one at its chosen width and caps each panel's chosen width by the room. `useDrawerChrome` replaces the open state, the "awaiting room" marks and their effects with a wanted and a floating signal per panel; docked and shown states derive from them and the window width. The public API keeps its shape (`leftOpen` means shown; `setLeftOpen(true)` opens docked or floating, `setLeftOpen(false)` dismisses silently). Validation: a shell-navigation sweep narrows 1400 to 400 px in 20 px steps, requiring panels never to grow back or reappear, then widens and requires the same layout at every width. Regressions cover outside dismissal focus, rotation with a floating panel, a wanted panel docked by restored room across rotations, and rounded near-square viewports. drawer-layout unit tests cover each panel hiding at the end of its compression. Every browser file that drives the panels passes; the user validated the behaviour in a separate Electron dev instance; four gatekeeper rounds ended with no P0-P2 finding. Help is updated in all ten languages.
18 KiB
डेस्कटप विन्डो र डेटा
विन्डो, ट्याब र साझा सेवा
- हालको विन्डोमा अर्को परियोजना/गृह ट्याब खोल्न नयाँ उदाहरण प्रयोग गर्नुहोस्।
- छुट्टै एप विन्डोका लागि नेटिभ सञ्झ्याल → नयाँ विन्डो (
Ctrl+Shift+NवाCmd+Shift+N) प्रयोग गर्नुहोस्। - अर्को सुरुवातले नयाँ विन्डो नखोली हालै प्रयोग गरिएको विन्डोमा फोकस गर्नुपरे सेटिङहरू → उन्नत मा दोस्रो सुरुवातमा विद्यमान विन्डोमा फोकस गर्नुहोस् सक्षम गर्नुहोस्।
परियोजना ट्याब, चयन गरिएको कुराकानी र लेआउट विन्डोका हुन्। OpenCode सत्र/सन्देश साझा नेटिभ OpenCode सेवाका हुन्: अर्को विन्डोले पनि उही कुराकानी देख्न सक्छ। परियोजना ट्याब बन्द गर्दा त्यो परियोजना CodeNomad मा बन्द हुन्छ, यसका OpenCode सत्र होइन; तिनलाई फेरि भेट्न परियोजना फेरि खोल्नुहोस्। उही परियोजना जडान देखाइरहेको अर्को विन्डोले पनि आफ्नो ट्याब बन्द गरी सूचना देखाउँछ; उही फोल्डरका छुट्टै खोलिएका ट्याब प्रभावित हुँदैनन्। पूरै विन्डो बन्द गर्दा, एप बन्द गर्दा वा reload गर्दा परियोजना जडान पुनर्स्थापनाका लागि राखिन्छन्; परियोजना हेर्नुहोस्। विन्डो बन्द भएको आधारमा एजेन्ट वा निर्धारित Mission रोकिएको नमान्नुहोस्।
नेटिभ एप menu ले विन्डो लोड भएपछि CodeNomad को इन्टरफेस भाषा प्रयोग गर्छन्; त्यसअघि अङ्ग्रेजी देखाउँछन्। मद्दत → CodeNomad बारे (macOS एप menu मा पनि) ले संस्करण, अपडेट र निदानसहित सेटिङहरू → जानकारी खोल्छ।
प्राथमिकता र सुरुवाती पुनर्स्थापना
- कन्फिगर गर्न चाहेको विन्डोबाट Settings खोल्नुहोस्। स्थानीय डेस्कटप प्रवेशबिन्दुले त्यस opener को परियोजना/Location सहित एउटै नेटिभ Preferences विन्डोमा फोकस गर्छन्।
- सामान्य मा अघिल्लो अवस्था पुनर्स्थापना गर्नुहोस् खोल्नुहोस् वा बन्द गर्नुहोस्।
- त्यस विन्डोको सुरक्षित लेआउट बिर्सन सुरक्षित गरिएको सुरुआती अवस्था मेटाउनुहोस् प्रयोग गर्नुहोस्। यो पुष्टि नमागी तुरुन्तै लागू हुन्छ।
पुनर्स्थापनाले कार्यस्थान/SideCar ट्याब र सक्रिय सत्र, नपठाइएको पाठ, scroll स्थान, प्यानल, विन्डोको स्थान र zoom फेरि खोल्न सक्छ। यो प्रति-विन्डो क्लाइन्ट अवस्था हो, नेटिभ कुराकानी database को प्रतिलिपि होइन। यसलाई खाली गर्दा सुरक्षित ट्याब, मस्यौदा र लेआउट हट्छन्; CodeNomad कन्फिगरेसन वा OpenCode कुराकानी मेटिँदैनन्। महत्त्वपूर्ण नपठाइएको मस्यौदा पहिले अन्तै बचत गर्नुहोस्।
Preferences विन्डोको छुट्टै restore अवस्था हुँदैन: यी नियन्त्रणले यसलाई खोलेको विन्डोलाई लक्षित गर्छन्। त्यो विन्डो बन्द भएमा, वा सुरुआतमा Preferences फेरि खुलेकाले अज्ञात भएमा, तिनले हालै प्रयोग गरिएको विन्डो पछ्याउँछन्; अर्को विन्डोका लागि तयार गरिएको परिवर्तन कहिल्यै लागू हुँदैन, नियन्त्रणले पहिले नयाँ विन्डोको मान देखाउँछन्। कुनै खास विन्डो कन्फिगर गर्न त्यहीँबाट Preferences खोल्नुहोस्। परियोजना-दायराका सेटिङले पनि opener को Location प्रयोग गर्छन्; त्यो नभए उपलब्ध हुँदैनन्। सुरुआतमा Preferences फेरि खुल्दा, त्यो परियोजना खुलिसकेपछि तिनी फेरि जोडिन्छन्; फोल्डर अझै सुरु हुँदै गर्दा, वा धेरै ट्याबमा खुला हुँदा, तपाईंले चाहेको विन्डोबाट Preferences नखोलेसम्म उपलब्ध हुँदैनन्।
ब्राउजर र रिमोट सेटिङ भित्रै हुन्छन्, दोस्रो नेटिभ Preferences मालिक होइनन्। नेटिभ Preferences खोल्दा त्रुटि भए देखाइन्छ; त्यसैले लुकेको embedded सेटिङ स्क्रिन खोलियो भनेर नमान्नुहोस्।
डेस्कटप डेटा प्रोफाइल
- नेटिभ सेटिङहरू → सामान्य मा अघिल्लो अवस्था पुनर्स्थापना गर्नुहोस् मुनि डेटा प्रोफाइल विस्तार गर्नुहोस्। यसले यो कम्प्युटरका सबै प्रोफाइल आकार, सिर्जना मिति र अन्तिम प्रयोगसहित देखाउँछ, खुला प्रोफाइल सबैभन्दा माथि।
- अर्को सुरुवातले खोल्ने प्रोफाइल चयन गर्नुहोस्, वा नयाँ प्रोफाइल रोजेर अक्षर वा अङ्कबाट सुरु हुने 1-64 साना अङ्ग्रेजी अक्षर, अङ्क, थोप्ला, ड्यास वा अन्डरस्कोर भएको नाम लेख्नुहोस्।
- तुरुन्तै बदल्न … मा पुनः सुरु गर्नुहोस् रोज्नुहोस्; नत्र चयन गरिएको प्रोफाइल अर्को सुरुवातमा खुल्छ। खुला प्रोफाइल फेरि चयन गर्दा परिवर्तन रद्द हुन्छ।
अर्को कन्फिगरेसनका प्रोफाइल सूचीमा देखिन्छन्, तर यहाँ चयन गर्न सकिँदैन। सम्झिएको चयन नभए packaged सुरुवातले default, dev र dev-v2 प्रोफाइलमा पुनर्स्थापना गर्न सकिने काम जाँच्छ र तीमध्ये सबैभन्दा हालै प्रयोग गरिएको खोल्छ; कुनैमा पनि नभए default खोल्छ। प्रोफाइल चयन गर्दा प्रोफाइल डेटा सारिँदैन, गाभिँदैन वा मेटिँदैन।
executable सुरु गर्नुअघि सेट गरिएको CODENOMAD_PROFILE ले यो चयनभन्दा प्राथमिकता पाउँछ; त्यसबेला डेटा प्रोफाइल ले प्रोफाइलहरू देखाउँछ तर कुनै चयन गर्न दिँदैन। default वा stable ले default प्रोफाइल चयन गर्छ, र अमान्य नामले अर्को प्रोफाइल चयन गर्नुको सट्टा सुरुवात रोक्छ। उदाहरणका लागि PowerShell मा चाहेको डेस्कटप executable सुरु गर्नुअघि:
$env:CODENOMAD_PROFILE = "review"
स्वतन्त्र सर्भर कन्फिगरेसनका लागि सुरु गर्नुअघि CLI_CONFIG पनि छुट्टै कन्फिगरेसन फाइलमा सेट गर्नुहोस्। default ~/.config/codenomad/config.yaml हो। प्रोफाइल नामले मात्र त्यो फाइल वा साझा OpenCode सेवा बदल्दैन।
| डेस्कटप डेटा प्रोफाइलले अलग गर्ने | स्वतः अलग नहुने |
|---|---|
| विन्डो/ट्याब restore अवस्था, नपठाइएका मस्यौदा र डेस्कटप singleton/ब्याकएन्ड दायरा | OpenCode सत्र, सन्देश, प्रदायक प्रमाणिकरण विवरण र कार्यान्वयन |
| प्लेटफर्म सीमाअनुसार त्यस प्रोफाइलसँग सम्बन्धित नेटिभ Chromium/WebView भण्डारण | कन्फिगरेसन साझा भए CodeNomad कन्फिगरेसन/प्राथमिकता, speech key, SideCars र विस्तार सक्रियता |
| आफ्नो होस्ट/प्रोफाइलभित्रको नेटिभ पूर्वावलोकन भण्डारण | खोलिएका परियोजनाका फाइल; रिमोट सर्भरका डेटा |
macOS Tauri मा scoped प्रोफाइलले system WebKit भण्डारण, sign-in र cache साझा गर्छन्; प्रोफाइल नामलाई खाता-सुरक्षा अलगाव नमान्नुहोस्। Electron ले web डेटा आफ्नो प्रोफाइलमा राख्छ। स्थापित संस्करण र अपडेट फिड ले कहिल्यै अर्को डेटा प्रोफाइल चयन गर्दैनन्। स्पष्ट चयन नभए unpackaged विकास सुरुवातले dev प्रोफाइल प्रयोग गर्छ।
सुरक्षित प्रोफाइल मेट्नुहोस्
- माथि जस्तै डेटा प्रोफाइल विस्तार गर्नुहोस् र आवश्यक भए सूची रिफ्रेस गर्नुहोस्।
- हटाउन चाहेको प्रोफाइलको मेटाउने बटन रोज्नुहोस्। खुला प्रोफाइलमा यो बटन हुँदैन।
- चाहिने मस्यौदा/sign-in जोगाएपछि मात्र पुष्टि गर्नुहोस्। फेरि प्रयास गर्नुअघि अधुरो हटाइको प्रतिवेदन जाँच्नुहोस्।
मेटाइले त्यस प्रोफाइलका सुरक्षित ट्याब, मस्यौदा, लेआउट र स्वामित्वको web भण्डारण/cache/sign-in हटाउँछ, अर्को कन्फिगरेसनको सूचीकृत प्रोफाइल भए पनि। खुला प्रोफाइल, OpenCode कुराकानी र परियोजना फाइल जोगिन्छन्। खुला वा अवस्था अज्ञात प्रोफाइल मेटाउन सकिँदैन; सम्बन्धित CodeNomad विन्डो बन्द गर्नुहोस्, सूची रिफ्रेस गर्नुहोस् र फेरि प्रयास गर्नुहोस्। नचिनिएको सामग्री व्यापक रूपमा मेट्नुको सट्टा राखिन्छ र प्रतिवेदन दिइन्छ।
macOS Tauri को साझा WebKit भण्डारण राखिन्छ किनकि मेट्दा अरू प्रोफाइल प्रभावित हुन्छन्। यो सफाइ उल्टाउन सकिँदैन: बाँकी नेटिभ कुराकानीले मेटिएको नपठाइएको मस्यौदा फर्काउँदैन। हालको विन्डो मात्र reset गर्न सुरक्षित गरिएको सुरुआती अवस्था मेटाउनुहोस् सानो कार्य हो।
Zoom र प्यानल ज्यामिति
- नेटिभ दृश्य → जुम इन, जुम आउट वा वास्तविक आकार प्रयोग गर्नुहोस्; keyboard/wheel इनपुट पनि होस्टको समर्थनअनुसार चल्छ।
- प्यानल देखाउन/लुकाउन स्थिर बाहिरी header कुनाका बायाँ प्यानल र दायाँ प्यानल प्रयोग गर्नुहोस्। लेआउटले अनुमति दिए drawer pin/unpin गर्नुहोस्।
- नियन्त्रण नअटे zoom घटाउनुहोस् वा विन्डो चौडा बनाउनुहोस्; साँघुरो लेआउटले नियन्त्रण menu मा सार्छ र नअट्ने प्यानल बन्द गर्छ।
मुख्य स्थानीय र रिमोट डेस्कटप विन्डोले एप zoom अनुसार र monitor को कार्यक्षेत्रभित्र कम्तीमा 390 × 600 CSS pixels राख्छन्। zoom बढाउँदा सानो विन्डो ठूलो हुन सक्छ; घटाउँदा पहिले नै ठूलो विन्डो खुम्चिँदैन। Preferences र ब्राउजर-पूर्वावलोकन child का छुट्टै आकार नियम छन्।
प्यानलले न्यूनतम कुराकानी चौडाइ छोड्छन्। नअट्ने docked प्यानल बन्द हुन्छ, पहिले दायाँ प्यानल, र त्यो docked हुँदा तपाईंले त्यसलाई बन्द गर्नुभएको छैन भने विन्डोमा फेरि ठाउँ भएपछि फर्कन्छ; ठाउँ नहुँदा तपाईंले खोलेको प्यानल कुराकानीमाथि floating हुन्छ। कुराकानी चौडाइ 420 CSS pixels भन्दा कम हुँदा timeline लुक्छ र header कार्य overflow menu मा जान्छन्; सुरक्षित timeline प्राथमिकता कायम रहन्छ। यी ज्यामिति परिवर्तनले prompt मस्यौदा वा नेटिभ सत्र बदल्दैनन्। सेटिङ र लेआउट र ब्राउजर पूर्वावलोकन र SideCars हेर्नुहोस्।