{"sections":[{"heading":"Choose literal editing deliberately","paragraphs":["Search Workspace finds literal text in the workspace folder and open netlist buffers. A dirty buffer overrides its saved file; untitled buffers are included. Search and navigation do not change source or run simulation.","Workspace replacement changes the selected matching text. It does not infer circuit intent, numerical equivalence or semantic symbol identity. For example, searching 1000 does not automatically find the equivalent notation 1k. Review the complete Before/After source rather than treating a count as evidence that the intended circuit was changed."]},{"heading":"Prepare the complete teaching workspace","paragraphs":["Extract main.cir, loads.inc and notes.cir into a new writable folder. main.cir includes loads.inc and is the circuit to run. notes.cir is a separate read-only review source; it is not included in that calculation. Use the intended JoSIM-Pro 2.9 GUI.","For deliberate buffer-only review, first choose Tools > Preferences > Autosave > Off. Autosave is separate from recovery checkpoints. If you leave an automatic-write policy enabled, account for when it can save an applied replacement; buffer-only Apply does not guarantee that disk remains unchanged indefinitely.","Open main.cir and insert a new first line, * buffer-only review note, without saving. Open notes.cir and choose Edit > Editor view > Read-only mode. Create an untitled scratch buffer containing * Untitled review marker 1000. Keep loads.inc unopened. The scratch note is a search participant, not a circuit to simulate."]},{"figures":[{"asset_id":"josim-workspace-results","caption":"Whole word separates 1000 from 10000. The dirty main buffer supplies the line-five match; the saved file still has its earlier source. Untitled buffers remain eligible."}],"heading":"Find the intended matches","paragraphs":[],"steps":["Choose Tools > Search Workspace or Ctrl/Cmd+Shift+F. Enter 1000, enable Whole word and choose Search. The checked setup produces four matches: main.cir, notes.cir, the untitled note and loads.inc.","Inspect the status for complete results. main.cir is searched from its dirty buffer, where the added first line moves the resistor match to line five. The saved file is still unchanged.","Disable Whole word and search again to see the fifth substring match inside 10000. Re-enable it and search again before replacement. Whole word follows netlist text boundaries; it is not a numeric comparison.","Select the main.cir result and choose Open or press Enter. The checked route returns to that existing dirty editor and selects the exact 1000 range. Opening a new source can stale the broader search snapshot; unchanged result targets are rechecked before navigation.","Close and reopen Search Workspace to return to the retained query and results during this app session. A new app launch does not retain this results view."]},{"heading":"Narrow the source set","paragraphs":["Include and Exclude use comma-separated path globs: * stays within one path segment, ** crosses folders and ? matches one character. Use forward slashes. A basename mask applies at any depth; **/* admits custom names. The default Include is *.cir,*.inc,*.lib,*.sp,*.spice,*.net.","Custom Include masks restrict named open buffers too. In the checked setup, *.inc leaves the loads.inc match and the untitled scratch match. Untitled buffers are not excluded by a named-file extension mask. Adding loads.inc to Exclude removes that source explicitly.","Generated build/bin, results, output, runs, simulation and plots folders are excluded by default; hidden, linked and build/bin directories are always skipped during folder discovery. Unopened include files outside the workspace are not automatically searched just because a circuit refers to them. Open them explicitly or search their containing workspace.","Masks accept at most 16 entries of 256 characters. Braces and character classes are not supported as glob operators; do not assume bracket notation selects a set of characters. The checked 257-character mask fails and disables replacement."]},{"heading":"Separate the view from the source","paragraphs":["Remove result removes only that retained match and excludes it from a later replacement preview. Clear results clears the retained view. Neither action changes source, saves a file or steps text Undo. The checked source stayed dirty and disk stayed original after both actions.","Changing a query or filter keeps old results stale until an explicit Search replaces them. Copy result and Copy all are documented view actions, with known stale/incomplete state in the copied text. Clipboard and large multi-page navigation remain unexercised here; no clipboard trial is implied by the screenshot."]},{"heading":"Require complete results before replacing","paragraphs":["Incomplete means some sources or results were skipped or a limit was reached. Do not use the retained subset as an exhaustive source list. The checked binary teaching control retained the four readable matches, labelled the search Incomplete and disabled replacement. Removing a result did not make it complete. Explicitly excluding that unrelated binary source and searching again recovered a complete search.","The documented limits include 4,096 files, 1,024 directories, 2 MiB per disk file, 2 Mi characters per buffer, 16 MiB total source, 10,000 matches, 8 MiB of results and a five-second matching budget after discovery. Preview separately limits files and output. The binary control and oversized glob are exercised; every boundary and filesystem failure is not.","Cancel work is cooperative between filesystem or matching operations. A blocking filesystem call may take time to return. Closing during a search cancels unfinished work; the completed-view retention check is not a cancellation or blocking-I/O timing test."]},{"figures":[{"asset_id":"josim-workspace-preview","caption":"Review each selected file. This pane shows R2 changing from 1000 to 2000 while R3 stays at 10000. Apply edits buffers; disk files are saved separately. Scroll either complete source pane where needed."}],"heading":"Review and choose files","paragraphs":[],"steps":["Run a fresh complete Whole word search for 1000. Set Replace to 2000, leave Preserve case off for this numeric example and choose Preview replacement.","No file should be preselected. Read the complete read-only Before and After source for each intended file; scroll the panes where necessary. Read-only notes.cir cannot be selected.","Select main.cir and loads.inc only. Leave the untitled scratch buffer unselected. Verify that R1 and R2 become 2000 while R3 remains 10000.","Cancel once to check the boundary. In the checked scenario all open source text remained unchanged and loads.inc stayed unopened. Reopen the same current preview, review the two files again and choose Apply selected files.","The selected unopened include becomes a modified editor tab. Both selected buffers are now dirty, with the pre-existing root note preserved; their disk files remain original while Autosave is Off. The read-only and unselected untitled sources stay unchanged."]},{"figures":[{"asset_id":"josim-workspace-stale","caption":"A changed source rejects the reviewed operation. Cancel, inspect current edits and search again; an old preview is not authority to overwrite the new buffer."}],"heading":"Recover from a stale preview","paragraphs":["Apply rechecks the workspace/buffer snapshot, revisions, expected source, disk hashes and writability. A changed, unavailable or read-only participant rejects the reviewed operation. The checked concurrent root edit rejected the whole Apply, preserved that new edit and left the include unopened.","Cancel the rejected preview and inspect the current source. Keep wanted edits. If the concurrent edit was accidental, undo it deliberately; the checked independent Undo retained the earlier dirty root note. Run Search again and review a new preview. Do not reuse an old preview as permission to overwrite a changed buffer."]},{"heading":"Use grouped Undo and save deliberately","paragraphs":[],"steps":["Undo from a participating buffer to reverse the replacement group. In the checked run the include returned to its clean original and the root returned to its earlier dirty state, retaining the unsaved note.","Redo from the other participating buffer to restore the group. The checked Redo reapplied both resistor changes. Read-only participants block the whole group: the checked locked include produced an explicit warning and neither buffer was partly undone.","Independent edits must be undone before stepping a group. Renamed/read-only participants and closed participant tabs can make grouped history unavailable. Those additional guards are documented source behaviour; only the locked-participant guard is exercised here. Reopening a file does not restore discarded text/group Undo.","When the reviewed changes are intended, Save both main.cir and loads.inc. In the checked Off-policy path, these explicit saves wrote the changed UTF-8/LF bytes; Apply, Cancel and grouped Undo/Redo had not written them.","Run main.cir and check the complete current result. After relaunch, explicitly reopen the saved main.cir. The checked fresh-profile app reloaded the saved include and reproduced the numerical arrays. This does not close the separate normal-exit automatic session-restoration issue."]},{"heading":"Check the circuit consequence","paragraphs":["The ideal source holds IN at 0.1 V. The two targeted branches initially use 1000 ohms, so each carries 0.1/1000 = 100 microamperes. After both selected values become 2000 ohms and are saved, each carries 50 microamperes. The unselected 10000 ohm branch remains at 10 microamperes.","The two independent CLI runs and both native saved/reopened runs provide 21 samples from 0 to 100 ps in 5 ps increments. The comparison allowance of 1e-12 in SI units applies only to this simple ideal-source/resistor reference; it is not a physical-accuracy target, general solver tolerance or convergence result. Raw native array unit labels were empty, so units follow the explicit V/I requests rather than an invented metadata label."],"table":{"columns":["Source state","V(IN)","I(R1)","I(R2)","I(R3)"],"rows":[["Original saved sources","0.1 V","100 µA","100 µA","10 µA"],["Reviewed replacement, both files saved","0.1 V","50 µA","50 µA","10 µA"]]}},{"code":"if (Test-Path -LiteralPath '.\\workspace-result.csv') { throw 'Preserve the existing result; use a fresh teaching folder before running this check.' }\n& $JoSIM -o '.\\workspace-result.csv' '.\\main.cir'\nif ($LASTEXITCODE -ne 0) { throw 'JoSIM failed; read the first diagnostic and correct the complete inputs before retrying.' }\nif (-not (Test-Path -LiteralPath '.\\workspace-result.csv' -PathType Leaf)) { throw 'No current numerical result was written.' }","heading":"Run the saved teaching circuit from a terminal","paragraphs":["This optional check runs a saved circuit; it does not search, replace or see an unsaved GUI buffer. Set $JoSIM to the intended licensed 2.9 CLI executable. Run in the extracted teaching folder, or a fresh complete copy of the explicitly saved replacement. Keep main.cir and loads.inc together and preserve an existing result.","Read the first diagnostic after failure. Restore a missing include before retrying in a fresh folder. Compare the new CSV against the appropriate row above; a successful process alone does not establish that the intended buffer was saved."]},{"code":"* Synthetic workspace replacement teaching circuit\n.include \"loads.inc\"\nV1 IN 0 DC .1\nR1 IN 0 1000\n.OPTION SEED=321 ANALYSIS=VOLTAGE INTEGRATION=BDF\n.TRAN 5p 100p 0 5p\n.PRINT V(IN) I(R1) I(R2) I(R3)\n.END","heading":"Save main.cir"},{"code":"* Included loads; the larger load must remain unchanged\nR2 IN 0 1000\nR3 IN 0 10000","heading":"Save loads.inc"},{"code":"* Separate source for read-only review; do not include in main.cir\nV4 AUX 0 DC .1\nR4 AUX 0 1000\n.TRAN 5p 100p\n.PRINT V(AUX) I(R4)\n.END","heading":"Save notes.cir"}],"canonical_url":"https://www.sun-magnetics.com/knowledge-base/josim-workspace-replace","url":"/knowledge-base/josim-workspace-replace","known_issues":[{"disposition":"verified_workaround","id":"KB-GUI-007","title":"JoSIM normal exit clears the saved session after closing tabs","public_notice":"Save the intended source, record its location and explicitly reopen and run it after relaunch. Automatic normal-exit tab restoration is not accepted on the checked JoSIM candidate.","claim_scope":"Only the affected claim and recorded build/input; not whole-guide or final-release acceptance"}],"search_record":{"execution":true,"relatedProducts":[],"version_tags":["JoSIM-Pro 2.9 target"],"text":"Search and replace across a workspace Find literal matches in current buffers and saved sources, review selected files and apply one reversible editing group before saving deliberately. JoSIM-Pro Fresh current-source Windows 2.9.0 review candidate; final-package/platform checks pending How to Search workspace Ctrl Shift F dirty buffer overrides disk untitled open unopened include exclude globs Preview replacement Apply selected files Cancel read-only files explicit checkbox Before After literal text Whole word 1000 10000 Match case selection retained view Remove result Clear results Incomplete binary skipped sources replacement disabled glob 256 characters stale source changed preview rejection refresh search grouped Undo Redo whole transaction locked participating buffer Save separately unsaved source resistor 1000 2000 10000 ohm 100 50 10 microampere current circuit reference Choose literal editing deliberately Search Workspace finds literal text in the workspace folder and open netlist buffers. A dirty buffer overrides its saved file; untitled buffers are included. Search and navigation do not change source or run simulation. Workspace replacement changes the selected matching text. It does not infer circuit intent, numerical equivalence or semantic symbol identity. For example, searching 1000 does not automatically find the equivalent notation 1k. Review the complete Before/After source rather than treating a count as evidence that the intended circuit was changed.  Prepare the complete teaching workspace Extract main.cir, loads.inc and notes.cir into a new writable folder. main.cir includes loads.inc and is the circuit to run. notes.cir is a separate read-only review source; it is not included in that calculation. Use the intended JoSIM-Pro 2.9 GUI. For deliberate buffer-only review, first choose Tools > Preferences > Autosave > Off. Autosave is separate from recovery checkpoints. If you leave an automatic-write policy enabled, account for when it can save an applied replacement; buffer-only Apply does not guarantee that disk remains unchanged indefinitely. Open main.cir and insert a new first line, * buffer-only review note, without saving. Open notes.cir and choose Edit > Editor view > Read-only mode. Create an untitled scratch buffer containing * Untitled review marker 1000. Keep loads.inc unopened. The scratch note is a search participant, not a circuit to simulate.  Find the intended matches Choose Tools > Search Workspace or Ctrl/Cmd+Shift+F. Enter 1000, enable Whole word and choose Search. The checked setup produces four matches: main.cir, notes.cir, the untitled note and loads.inc. Inspect the status for complete results. main.cir is searched from its dirty buffer, where the added first line moves the resistor match to line five. The saved file is still unchanged. Disable Whole word and search again to see the fifth substring match inside 10000. Re-enable it and search again before replacement. Whole word follows netlist text boundaries; it is not a numeric comparison. Select the main.cir result and choose Open or press Enter. The checked route returns to that existing dirty editor and selects the exact 1000 range. Opening a new source can stale the broader search snapshot; unchanged result targets are rechecked before navigation. Close and reopen Search Workspace to return to the retained query and results during this app session. A new app launch does not retain this results view.  Whole word separates 1000 from 10000. The dirty main buffer supplies the line-five match; the saved file still has its earlier source. Untitled buffers remain eligible. The actual Search workspace window shows four whole-word matches: dirty main.cir, read-only notes.cir, an untitled buffer and unopened loads.inc. Narrow the source set Include and Exclude use comma-separated path globs: * stays within one path segment, ** crosses folders and ? matches one character. Use forward slashes. A basename mask applies at any depth; **/* admits custom names. The default Include is *.cir,*.inc,*.lib,*.sp,*.spice,*.net. Custom Include masks restrict named open buffers too. In the checked setup, *.inc leaves the loads.inc match and the untitled scratch match. Untitled buffers are not excluded by a named-file extension mask. Adding loads.inc to Exclude removes that source explicitly. Generated build/bin, results, output, runs, simulation and plots folders are excluded by default; hidden, linked and build/bin directories are always skipped during folder discovery. Unopened include files outside the workspace are not automatically searched just because a circuit refers to them. Open them explicitly or search their containing workspace. Masks accept at most 16 entries of 256 characters. Braces and character classes are not supported as glob operators; do not assume bracket notation selects a set of characters. The checked 257-character mask fails and disables replacement.  Separate the view from the source Remove result removes only that retained match and excludes it from a later replacement preview. Clear results clears the retained view. Neither action changes source, saves a file or steps text Undo. The checked source stayed dirty and disk stayed original after both actions. Changing a query or filter keeps old results stale until an explicit Search replaces them. Copy result and Copy all are documented view actions, with known stale/incomplete state in the copied text. Clipboard and large multi-page navigation remain unexercised here; no clipboard trial is implied by the screenshot.  Require complete results before replacing Incomplete means some sources or results were skipped or a limit was reached. Do not use the retained subset as an exhaustive source list. The checked binary teaching control retained the four readable matches, labelled the search Incomplete and disabled replacement. Removing a result did not make it complete. Explicitly excluding that unrelated binary source and searching again recovered a complete search. The documented limits include 4,096 files, 1,024 directories, 2 MiB per disk file, 2 Mi characters per buffer, 16 MiB total source, 10,000 matches, 8 MiB of results and a five-second matching budget after discovery. Preview separately limits files and output. The binary control and oversized glob are exercised; every boundary and filesystem failure is not. Cancel work is cooperative between filesystem or matching operations. A blocking filesystem call may take time to return. Closing during a search cancels unfinished work; the completed-view retention check is not a cancellation or blocking-I/O timing test.  Review and choose files Run a fresh complete Whole word search for 1000. Set Replace to 2000, leave Preserve case off for this numeric example and choose Preview replacement. No file should be preselected. Read the complete read-only Before and After source for each intended file; scroll the panes where necessary. Read-only notes.cir cannot be selected. Select main.cir and loads.inc only. Leave the untitled scratch buffer unselected. Verify that R1 and R2 become 2000 while R3 remains 10000. Cancel once to check the boundary. In the checked scenario all open source text remained unchanged and loads.inc stayed unopened. Reopen the same current preview, review the two files again and choose Apply selected files. The selected unopened include becomes a modified editor tab. Both selected buffers are now dirty, with the pre-existing root note preserved; their disk files remain original while Autosave is Off. The read-only and unselected untitled sources stay unchanged.  Review each selected file. This pane shows R2 changing from 1000 to 2000 while R3 stays at 10000. Apply edits buffers; disk files are saved separately. Scroll either complete source pane where needed. The actual replacement review selects main.cir and unopened loads.inc, leaves the untitled buffer unselected and disables the read-only source. Before and After show the included resistor change while the larger load is preserved. Recover from a stale preview Apply rechecks the workspace/buffer snapshot, revisions, expected source, disk hashes and writability. A changed, unavailable or read-only participant rejects the reviewed operation. The checked concurrent root edit rejected the whole Apply, preserved that new edit and left the include unopened. Cancel the rejected preview and inspect the current source. Keep wanted edits. If the concurrent edit was accidental, undo it deliberately; the checked independent Undo retained the earlier dirty root note. Run Search again and review a new preview. Do not reuse an old preview as permission to overwrite a changed buffer.  A changed source rejects the reviewed operation. Cancel, inspect current edits and search again; an old preview is not authority to overwrite the new buffer. The actual preview reports Replacement rejected: source changed, read-only or unavailable, and disables Apply after a concurrent source edit. Use grouped Undo and save deliberately Undo from a participating buffer to reverse the replacement group. In the checked run the include returned to its clean original and the root returned to its earlier dirty state, retaining the unsaved note. Redo from the other participating buffer to restore the group. The checked Redo reapplied both resistor changes. Read-only participants block the whole group: the checked locked include produced an explicit warning and neither buffer was partly undone. Independent edits must be undone before stepping a group. Renamed/read-only participants and closed participant tabs can make grouped history unavailable. Those additional guards are documented source behaviour; only the locked-participant guard is exercised here. Reopening a file does not restore discarded text/group Undo. When the reviewed changes are intended, Save both main.cir and loads.inc. In the checked Off-policy path, these explicit saves wrote the changed UTF-8/LF bytes; Apply, Cancel and grouped Undo/Redo had not written them. Run main.cir and check the complete current result. After relaunch, explicitly reopen the saved main.cir. The checked fresh-profile app reloaded the saved include and reproduced the numerical arrays. This does not close the separate normal-exit automatic session-restoration issue.  Check the circuit consequence The ideal source holds IN at 0.1 V. The two targeted branches initially use 1000 ohms, so each carries 0.1/1000 = 100 microamperes. After both selected values become 2000 ohms and are saved, each carries 50 microamperes. The unselected 10000 ohm branch remains at 10 microamperes. The two independent CLI runs and both native saved/reopened runs provide 21 samples from 0 to 100 ps in 5 ps increments. The comparison allowance of 1e-12 in SI units applies only to this simple ideal-source/resistor reference; it is not a physical-accuracy target, general solver tolerance or convergence result. Raw native array unit labels were empty, so units follow the explicit V/I requests rather than an invented metadata label.  Source state V(IN) I(R1) I(R2) I(R3) Original saved sources 0.1 V 100 µA 100 µA 10 µA Reviewed replacement, both files saved 0.1 V 50 µA 50 µA 10 µA Run the saved teaching circuit from a terminal This optional check runs a saved circuit; it does not search, replace or see an unsaved GUI buffer. Set $JoSIM to the intended licensed 2.9 CLI executable. Run in the extracted teaching folder, or a fresh complete copy of the explicitly saved replacement. Keep main.cir and loads.inc together and preserve an existing result. Read the first diagnostic after failure. Restore a missing include before retrying in a fresh folder. Compare the new CSV against the appropriate row above; a successful process alone does not establish that the intended buffer was saved. if (Test-Path -LiteralPath '.\\workspace-result.csv') { throw 'Preserve the existing result; use a fresh teaching folder before running this check.' }\n& $JoSIM -o '.\\workspace-result.csv' '.\\main.cir'\nif ($LASTEXITCODE -ne 0) { throw 'JoSIM failed; read the first diagnostic and correct the complete inputs before retrying.' }\nif (-not (Test-Path -LiteralPath '.\\workspace-result.csv' -PathType Leaf)) { throw 'No current numerical result was written.' } Save main.cir * Synthetic workspace replacement teaching circuit\n.include \"loads.inc\"\nV1 IN 0 DC .1\nR1 IN 0 1000\n.OPTION SEED=321 ANALYSIS=VOLTAGE INTEGRATION=BDF\n.TRAN 5p 100p 0 5p\n.PRINT V(IN) I(R1) I(R2) I(R3)\n.END Save loads.inc * Included loads; the larger load must remain unchanged\nR2 IN 0 1000\nR3 IN 0 10000 Save notes.cir * Separate source for read-only review; do not include in main.cir\nV4 AUX 0 DC .1\nR4 AUX 0 1000\n.TRAN 5p 100p\n.PRINT V(AUX) I(R4)\n.END","id":"josim-workspace-replace","keywords":"Search workspace Ctrl Shift F dirty buffer overrides disk untitled open unopened include exclude globs Preview replacement Apply selected files Cancel read-only files explicit checkbox Before After literal text Whole word 1000 10000 Match case selection retained view Remove result Clear results Incomplete binary skipped sources replacement disabled glob 256 characters stale source changed preview rejection refresh search grouped Undo Redo whole transaction locked participating buffer Save separately unsaved source resistor 1000 2000 10000 ohm 100 50 10 microampere current circuit reference","kind":"How to","title":"Search and replace across a workspace","product":"JoSIM-Pro"},"version":"Fresh current-source Windows 2.9.0 review candidate; final-package/platform checks pending","id":"josim-workspace-replace","related":["/knowledge-base/josim-autosave-recovery","/knowledge-base/josim-editor-navigation","/knowledge-base/josim-workspace-diagnostics","/knowledge-base/josim-run-current-source"],"downloads":[{"url":"/_functions/kbExample?name=josim-workspace-replace.zip","scope":"Exact checked input files plus instructions; final-release/platform applicability remains pending.","files":["main.cir","loads.inc","notes.cir","README.txt"],"id":"josim-workspace-replace","requires":["Intended JoSIM-Pro 2.9 GUI and fresh writable complete source copies","Optional intended licensed 2.9 CLI for the saved-circuit check"],"title":"Workspace replacement teaching circuit and review source"}],"publication_status":"published","numerical_output":null,"provenance":{"execution_checks":[{"routes":["cli"],"scope":"14 independent circuit checks compare fresh original and actual native-saved CLI generations with ideal source/resistor laws and both native calculations at 21 coordinates. Eight exact displayed PowerShell checks include missing-include rejection and refusal to overwrite an existing result.","result":"passed","articles":["josim-workspace-replace"],"purpose":"workspace-teaching-circuit-reference-and-literal-cli-check","version":"Frozen Windows JoSIM-Pro 2.9.0 CLI matching the native runtime","id":"VAL-075","records":["14 ideal-circuit/source checks; 8 literal-command checks"],"limit":"Two fresh Windows 2.9 CLI runs on original and actual native-saved teaching sources, ideal resistor/source references at every saved coordinate and comparison with two separately exercised native app runs. The 1e-12 SI comparison allowance is for this simple teaching reference, not physical accuracy, a solver-wide tolerance, arbitrary replacements or a final package. The CLI checks saved circuits; it does not perform workspace replacement.","observed":{"untargeted_current_A":0.00001,"comparison_abs_tolerance_SI":1e-12,"replaced_selected_current_A":0.00005,"samples":21,"voltage_V":0.1,"original_selected_current_A":0.0001,"native_unit_labels":"Empty in the raw array metadata; quantities/units follow the explicit V/I requests, not a supplied array unit label."}},{"routes":["gui-native-scenario"],"scope":"36 independent native/source/process/byte checks across four normal Windows app processes cover modeless search, dirty-buffer precedence, exact navigation, filters and retained-view actions, incomplete guards, explicit selected-file preview/Cancel, stale-source rejection, buffer-only apply, locked linked-history rejection, grouped Undo/Redo, explicit saves and fresh-profile reopening.","result":"passed","articles":["josim-workspace-replace"],"purpose":"native-workspace-search-selected-replace-and-grouped-history","version":"Frozen maintained-source-matched Windows JoSIM-Pro 2.9.0 candidate","id":"VAL-076","records":["36 independent native/source/byte checks; four normal app processes; three reviewed native controls"],"limit":"No physical pointer/OS picker, cooperative cancellation under blocking I/O, clipboard, preserve-case/multiline, all limits, external-disk race, independent-edit history guard, closed-tab group loss, persistent prior Undo, other-platform or final-package acceptance.","observed":{"samples_per_calculation":21,"owned_app_processes":4,"substring_matches":5,"whole_word_matches":4,"preview_files":4,"native_calculations":2,"read_only_and_untitled_selected":false,"selected_files":2}}],"figure_evidence":[{"evidence_limit":"No physical pointer/OS picker, cooperative cancellation under blocking I/O, clipboard, preserve-case/multiline, all limits, external-disk race, independent-edit history guard, closed-tab group loss, persistent prior Undo, other-platform or final-package acceptance.","id":"josim-workspace-results","reference_label":"Actual frozen Windows JoSIM-Pro 2.9.0 workspace scenario, reviewed 4 November 2026"},{"evidence_limit":"No physical pointer/OS picker, cooperative cancellation under blocking I/O, clipboard, preserve-case/multiline, all limits, external-disk race, independent-edit history guard, closed-tab group loss, persistent prior Undo, other-platform or final-package acceptance.","id":"josim-workspace-preview","reference_label":"Actual frozen Windows JoSIM-Pro 2.9.0 workspace scenario, reviewed 4 November 2026"},{"evidence_limit":"No physical pointer/OS picker, cooperative cancellation under blocking I/O, clipboard, preserve-case/multiline, all limits, external-disk race, independent-edit history guard, closed-tab group loss, persistent prior Undo, other-platform or final-package acceptance.","id":"josim-workspace-stale","reference_label":"Actual frozen Windows JoSIM-Pro 2.9.0 workspace scenario, reviewed 4 November 2026"}],"review_notes":["36 independent native/source/process/byte checks across four normal Windows app processes cover modeless search, dirty-buffer precedence, exact navigation, filters and retained-view actions, incomplete guards, explicit selected-file preview/Cancel, stale-source rejection, buffer-only apply, locked linked-history rejection, grouped Undo/Redo, explicit saves and fresh-profile reopening.","14 independent circuit checks compare fresh original and actual native-saved CLI generations with ideal source/resistor laws and both native calculations at 21 coordinates. Eight exact displayed PowerShell checks include missing-include rejection and refusal to overwrite an existing result.","No physical pointer/OS picker, cooperative cancellation under blocking I/O, clipboard, preserve-case/multiline, all limits, external-disk race, independent-edit history guard, closed-tab group loss, persistent prior Undo, other-platform or final-package acceptance.","The earlier bracket-pattern attempt was a helper assumption: unsupported character-class syntax is treated literally, not required to raise an error. The final failure control checks an overlength glob."],"scope":"Recorded inputs/builds only. Complete walkthrough and final-package acceptance remain separate.","verification_requirements":{"gui_method":"product-native-scenario","status":"review-incomplete","illustrations":"required","required":["technical-review","release-applicability","execution","gui-workflow","recovery","illustrations","numerical-interpretation"],"legacy_walkthrough_field":"pending retained; not full GUI/release acceptance"},"sources":[{"id":"josim-pro:docs/manual_source/sections/gui_navigation_search.tex","section":"Search a workspace; Review workspace replacements; distinction from document regex search"},{"id":"josim-pro:docs/manual_source/sections/GUI.tex","section":"Read-only editor mode and source-write policy"},{"id":"validation:workspace-replace-20261104","section":"VAL-075/076 exact source edits, grouped history and ideal resistor references"}]},"title":"Search and replace across a workspace","type":"How to","markdown_url":"/_functions/kbResource?path=markdown%2Fjosim-workspace-replace.md","summary":"Find literal matches in current buffers and saved sources, review selected files and apply one reversible editing group before saving deliberately.","product":"JoSIM-Pro"}