diff --git a/docs/upstream/workspace-open/native-evidence/08-cancel-result-readable.png b/docs/upstream/workspace-open/native-evidence/08-cancel-result-readable.png new file mode 100644 index 0000000..ce2022d Binary files /dev/null and b/docs/upstream/workspace-open/native-evidence/08-cancel-result-readable.png differ diff --git a/docs/upstream/workspace-open/native-evidence/09-new-tab-opened.png b/docs/upstream/workspace-open/native-evidence/09-new-tab-opened.png new file mode 100644 index 0000000..026b7eb Binary files /dev/null and b/docs/upstream/workspace-open/native-evidence/09-new-tab-opened.png differ diff --git a/docs/upstream/workspace-open/native-evidence/10-origin-after-new-tab.png b/docs/upstream/workspace-open/native-evidence/10-origin-after-new-tab.png new file mode 100644 index 0000000..e84a0e0 Binary files /dev/null and b/docs/upstream/workspace-open/native-evidence/10-origin-after-new-tab.png differ diff --git a/docs/upstream/workspace-open/native-evidence/11-outside-refusal.png b/docs/upstream/workspace-open/native-evidence/11-outside-refusal.png new file mode 100644 index 0000000..f149c0e Binary files /dev/null and b/docs/upstream/workspace-open/native-evidence/11-outside-refusal.png differ diff --git a/docs/upstream/workspace-open/native-evidence/12-nul-refusal.png b/docs/upstream/workspace-open/native-evidence/12-nul-refusal.png new file mode 100644 index 0000000..d6926ca Binary files /dev/null and b/docs/upstream/workspace-open/native-evidence/12-nul-refusal.png differ diff --git a/docs/upstream/workspace-open/native-evidence/13-oversized-refusal.png b/docs/upstream/workspace-open/native-evidence/13-oversized-refusal.png new file mode 100644 index 0000000..667c5ea Binary files /dev/null and b/docs/upstream/workspace-open/native-evidence/13-oversized-refusal.png differ diff --git a/docs/upstream/workspace-open/native-evidence/14-readonly-disk.json b/docs/upstream/workspace-open/native-evidence/14-readonly-disk.json new file mode 100644 index 0000000..6554dbb --- /dev/null +++ b/docs/upstream/workspace-open/native-evidence/14-readonly-disk.json @@ -0,0 +1,7 @@ +{ + "bytes": 53, + "sha256": "43316e66c64c9fe664312013f6910bf93f0fb7bb7791361eb880e3f0dd248162", + "content": "Project brief: preserve this readonly disk baseline.\n", + "sentinelAbsent": true, + "mode": "0o444" +} diff --git a/docs/upstream/workspace-open/native-evidence/15-readonly-after-save-failure.png b/docs/upstream/workspace-open/native-evidence/15-readonly-after-save-failure.png new file mode 100644 index 0000000..d9a7387 Binary files /dev/null and b/docs/upstream/workspace-open/native-evidence/15-readonly-after-save-failure.png differ diff --git a/docs/upstream/workspace-open/native-evidence/16-readonly-dirty-cancel.png b/docs/upstream/workspace-open/native-evidence/16-readonly-dirty-cancel.png new file mode 100644 index 0000000..a1c7fb1 Binary files /dev/null and b/docs/upstream/workspace-open/native-evidence/16-readonly-dirty-cancel.png differ diff --git a/docs/upstream/workspace-open/native-evidence/18-existing-dirty-target-retained.png b/docs/upstream/workspace-open/native-evidence/18-existing-dirty-target-retained.png new file mode 100644 index 0000000..f42a663 Binary files /dev/null and b/docs/upstream/workspace-open/native-evidence/18-existing-dirty-target-retained.png differ diff --git a/docs/upstream/workspace-open/native-evidence/18-retained-dirty-disk.json b/docs/upstream/workspace-open/native-evidence/18-retained-dirty-disk.json new file mode 100644 index 0000000..ac7d34a --- /dev/null +++ b/docs/upstream/workspace-open/native-evidence/18-retained-dirty-disk.json @@ -0,0 +1,6 @@ +{ + "bytes": 53, + "sha256": "43316e66c64c9fe664312013f6910bf93f0fb7bb7791361eb880e3f0dd248162", + "content": "Project brief: preserve this readonly disk baseline.\n", + "sentinelAbsent": true +} diff --git a/docs/upstream/workspace-open/native-evidence/19-dirty-origin-after-new-tab.png b/docs/upstream/workspace-open/native-evidence/19-dirty-origin-after-new-tab.png new file mode 100644 index 0000000..1cd2cbc Binary files /dev/null and b/docs/upstream/workspace-open/native-evidence/19-dirty-origin-after-new-tab.png differ diff --git a/docs/upstream/workspace-open/native-evidence/20-after-permission-recovery.png b/docs/upstream/workspace-open/native-evidence/20-after-permission-recovery.png new file mode 100644 index 0000000..695eb52 Binary files /dev/null and b/docs/upstream/workspace-open/native-evidence/20-after-permission-recovery.png differ diff --git a/docs/upstream/workspace-open/native-evidence/20-recovery-output-readback.json b/docs/upstream/workspace-open/native-evidence/20-recovery-output-readback.json new file mode 100644 index 0000000..f2106b1 --- /dev/null +++ b/docs/upstream/workspace-open/native-evidence/20-recovery-output-readback.json @@ -0,0 +1,16 @@ +{ + "checkedAt": "2026-10-17T10:27:38.158680+00:00", + "actualSavedOutput": { + "path": "20-retained-recovered.saved.open-probe", + "bytes": 79, + "sha256": "960fef7397a1779cd77baddeb14077d0cd86e24a382c8d8696036bdd143b38ad" + }, + "expectedVisibleBuffer": "Project brief: preserve this readonly disk baseline.\nUNSAVED_READONLY_SENTINEL\n", + "diskEqualsObservedBuffer": true, + "dirtyCleared": true, + "recoveryCause": "Normal host autosave persisted before the later explicit Cmd+S, after parent restored only owned directory/file permissions.", + "priorUnchangedDiskReceipts": [ + "14-readonly-disk.json", + "18-retained-dirty-disk.json" + ] +} diff --git a/docs/upstream/workspace-open/native-evidence/20-retained-recovered.saved.open-probe b/docs/upstream/workspace-open/native-evidence/20-retained-recovered.saved.open-probe new file mode 100644 index 0000000..48f8fe4 --- /dev/null +++ b/docs/upstream/workspace-open/native-evidence/20-retained-recovered.saved.open-probe @@ -0,0 +1,2 @@ +Project brief: preserve this readonly disk baseline. +UNSAVED_READONLY_SENTINEL diff --git a/docs/upstream/workspace-open/native-evidence/NATIVE-REPORT.md b/docs/upstream/workspace-open/native-evidence/NATIVE-REPORT.md new file mode 100644 index 0000000..03a9c07 --- /dev/null +++ b/docs/upstream/workspace-open/native-evidence/NATIVE-REPORT.md @@ -0,0 +1,22 @@ +# Proposed workspace Open — actual macOS development-host results + +The actual Nimbalyst 0.81.7 development host ran the reviewed nine-file proposal and exact public verification fixture identified in identities.json. Normal onboarding was completed by the user; the probe used ordinary UI and Settings GitHub installation, with no provider session, mocked Electron API, private IPC or synthetic concurrency. All 13 installed payload files matched public fixture source a76c5340. This is proposed-API development verification only. + +| Case | Actual result | Selected actual evidence | +|---|---|---| +| Optional public API and native chooser | PASS: visible Open button invokes the real native chooser. | Native chooser observed; [returned Cancel result](08-cancel-result-readable.png) | +| Cancel, saved origin | PASS: cancelled outcome; original tab/buffer retained. Earlier sentinel had already autosaved, so this is explicitly a saved-origin case. | [Cancel](08-cancel-result-readable.png) | +| New text tab | PASS: decision.md created/activated in actual host tab bar; original buffer retained on return. | [New tab](09-new-tab-opened.png), [origin retained on return](10-origin-after-new-tab.png) | +| Outside-workspace input | PASS: selected owned external input refused; no tab added. | [Refusal](11-outside-refusal.png) | +| NUL-containing Markdown | PASS: unavailable/not-text refusal; no tab added. | [Refusal](12-nul-refusal.png) | +|4MiB+1 Markdown | PASS: selected oversized input refused; no tab added. | [Refusal](13-oversized-refusal.png) | +| Genuine unsaved state | PASS: real file0444/directory0555 refusal blocks autosave; dirty marker/localDirty true and79-byte sentinel buffer remain while disk stays 53 bytes. | [Blocked save](15-readonly-after-save-failure.png), [dirty readback](19-dirty-origin-after-new-tab.png), [baseline input](14-readonly-disk.json) | +| Cancel with unsaved edits | PASS: cancelled outcome preserves dirty buffer and disk baseline. | [Actual capture](16-readonly-dirty-cancel.png) | +| Already-open dirty destination | PASS: existing dirty target activated without replacing its unsaved buffer. | [Actual capture](18-existing-dirty-target-retained.png), [disk baseline](18-retained-dirty-disk.json) | +| New tab from dirty origin | PASS: second.open-probe added; origin before/after localDirty true and same 79-byte buffer on return. | [Full dirty/new-tab readback](19-dirty-origin-after-new-tab.png) | +| Recovery after actual save refusal | PASS: after only owned permissions were restored, normal autosave persisted 79 bytes and cleared dirty before later Cmd+S. | [Recovered UI](20-after-permission-recovery.png), [actual output](20-retained-recovered.saved.open-probe), [hash/causation](20-recovery-output-readback.json) | +| Origin changes while chooser pending | NOT_RUN: chooser was window-modal and no supported same-window tab-switch route was demonstrated while pending. | No fabricated concurrency | + +The recovered output is 79 bytes/SHA256 960fef7397a1779cd77baddeb14077d0cd86e24a382c8d8696036bdd143b38ad; the readonly baseline is 53 bytes/SHA256 43316e66c64c9fe664312013f6910bf93f0fb7bb7791361eb880e3f0dd248162. Normal View zoom/sidebar controls made full readbacks visible; screenshots were not edited. A temporary input label containing UNSAVED does not establish dirty state: saved-origin and independently proved readonly-dirty cases remain distinct. + +All 11 observed finite cases pass in this macOS development host. One modal-origin case remains untested. Upstream authorship/DCO, accepted/released SDK and host support, actual Windows/Linux native checks and Terraphim product all 41/release admission remain separate gates. The owned development process was closed after evidence collection; no product release is claimed. diff --git a/docs/upstream/workspace-open/native-evidence/README.md b/docs/upstream/workspace-open/native-evidence/README.md new file mode 100644 index 0000000..17d98dc --- /dev/null +++ b/docs/upstream/workspace-open/native-evidence/README.md @@ -0,0 +1,11 @@ +# Actual macOS native Open verification + +This packet adds subsequent native evidence to the adjacent [proposed Open API](../README.md) and [verification fixture](../native-probe/README.md). The fixture's original provenance correctly records NOT_RUN at its build/publication checkpoint; it is preserved unchanged. These later observations do not rewrite that history. + +The ordinary GitHub installer loaded the exact reviewed fixture into the patched0.81.7 development host. All 13 installed files matched the public source. The real visible button called host.openWorkspaceFile; native chooser, actual tabs and saved bytes were observed. [Report](NATIVE-REPORT.md) and [exact identities](identities.json) define the tested scope. + +The selected PNGs are unchanged original task-window captures, not reconstructions. They show only the owned verification workspace; no onboarding, personal tutorial, global configuration, credentials or raw startup log is included. Generic usage indicators visible in the host chrome are incidental. The selected captures retain the actual dirty Cancel/previous-tab readbacks. [Manifest](manifest.json) binds all packet bytes. + +The 53-byte JSON disk receipts describe the controlled readonly INPUT baseline, not generated output. [The separate 79-byte recovered file](20-retained-recovered.saved.open-probe) is actual host-written output. [Recovery readback](20-recovery-output-readback.json) explicitly attributes persistence to normal autosave after permissions restoration, before the later Cmd+S. No manual-only save causation is claimed. + +Origin-tab change while the window-modal chooser was pending remains unobserved. This does not establish released host/SDK support, upstream acceptance/DCO, Windows/Linux native behavior, Terraphim all 41 acceptance or a product marketplace release. No product tag/release/admission is created by publishing this evidence. diff --git a/docs/upstream/workspace-open/native-evidence/identities.json b/docs/upstream/workspace-open/native-evidence/identities.json new file mode 100644 index 0000000..b3d8408 --- /dev/null +++ b/docs/upstream/workspace-open/native-evidence/identities.json @@ -0,0 +1,24 @@ +{ + "scope": "Actual macOS0.81.7 development-host verification of proposed API only", + "upstreamSource": "b5d994092c27ebe1f6a402c61351081b0dd52c56", + "nineFilePatchSha256": "09c211cbd4e7ce08a327c541b4fb18c9a5ab3ed4105618e96ae12d3d3b0b03cc", + "fixtureSource": "a76c5340c406062bba09e141b256f935308a3649", + "fixtureID": "com.terraphim.verification.workspace-open", + "fixtureVersion": "0.0.0-probe.1", + "bundleSha256": "8faffe7483ecc249d2c032f0288062ecece353de1a80967fc8aee2745468e761", + "sdk": "Actual local patched0.7.1 build, not released API availability", + "installed13PublicFilesMatch": true, + "upstreamTypechecks": 37, + "upstreamTests": { + "pass": 17806, + "fail": 0, + "skip": 30 + }, + "fixturePRCI": 39023964751, + "fixtureMainCI": 39024402262, + "fixtureThreeOSComponentCI": "PASS; not native3OS acceptance", + "nativeCasesPassed": 11, + "originTabChangeWhileModalChooser": "NOT_RUN", + "productRelease": "HELD", + "DCOorUpstreamAcceptanceClaimed": false +} diff --git a/docs/upstream/workspace-open/native-evidence/manifest.json b/docs/upstream/workspace-open/native-evidence/manifest.json new file mode 100644 index 0000000..cdd4ae8 --- /dev/null +++ b/docs/upstream/workspace-open/native-evidence/manifest.json @@ -0,0 +1,95 @@ +{ + "scope": "Small public native verification evidence; unchanged selected original captures", + "files": [ + { + "path": "08-cancel-result-readable.png", + "bytes": 304246, + "sha256": "fd1845217293e99fb5b51264b70603834435a75957aeb54dd465d8501b3a2229" + }, + { + "path": "09-new-tab-opened.png", + "bytes": 95862, + "sha256": "f598b1b716278569386067db0231e676abfa838c6df37c1404e58a9d1889dcc5" + }, + { + "path": "10-origin-after-new-tab.png", + "bytes": 317878, + "sha256": "be545f2461d41e993bae9f1e10d9cf918c00e9b83018fd59b6dab063b07f9dbe" + }, + { + "path": "11-outside-refusal.png", + "bytes": 315845, + "sha256": "5c3a911162621a87fddfa26f807bef5416de2aa4adb4f68d6a6cae6f8503da0f" + }, + { + "path": "12-nul-refusal.png", + "bytes": 314977, + "sha256": "0007fee846d488e91d3e0c936139e8c8540d13a960b14122075fd7fd0ae63010" + }, + { + "path": "13-oversized-refusal.png", + "bytes": 315864, + "sha256": "e1f82b946b29d1579acf1a8a6593d7e9e5248ade31ad77b382fb6dc29df0e9fd" + }, + { + "path": "14-readonly-disk.json", + "bytes": 214, + "sha256": "a78766ad2cf76d16f674f7314d6a1b3529fdaa6183f88cca52ec574c71fa1d31" + }, + { + "path": "15-readonly-after-save-failure.png", + "bytes": 249469, + "sha256": "a03cd59132323928b9f37cf2846eb6fc5386dd9fc5aba86e4ae08d76537ea67d" + }, + { + "path": "16-readonly-dirty-cancel.png", + "bytes": 351561, + "sha256": "e3ef21c389dbbaea34d762efd501ae9ea8bfcb3870c7fa0a73568cf53bb68c66" + }, + { + "path": "18-existing-dirty-target-retained.png", + "bytes": 292052, + "sha256": "0d7479c3971f732ea796fc904efaa1c944e77797d27bf209ae28a6f17e3c2df4" + }, + { + "path": "18-retained-dirty-disk.json", + "bytes": 195, + "sha256": "7e43ffd477804ec907b8f51a7d45b22f85028a4e316bc69ff7478d9ef1620e2f" + }, + { + "path": "19-dirty-origin-after-new-tab.png", + "bytes": 293593, + "sha256": "ca8af7ba34414b2ea5653f3bf45890c4c48eac51f8730593ff74f01886157186" + }, + { + "path": "20-after-permission-recovery.png", + "bytes": 275605, + "sha256": "cd15cb2c18d2744bddf5edcefedfbc38a8cf0fe2da58436c45d3da915576fd8b" + }, + { + "path": "20-recovery-output-readback.json", + "bytes": 657, + "sha256": "e70b2f69f6a49c61a4d2ad0a5c59cbe9231597180ae385f925cdcb4bb0938a37" + }, + { + "path": "20-retained-recovered.saved.open-probe", + "bytes": 79, + "sha256": "960fef7397a1779cd77baddeb14077d0cd86e24a382c8d8696036bdd143b38ad" + }, + { + "path": "NATIVE-REPORT.md", + "bytes": 3781, + "sha256": "a0783bdf9d937dc2c086236931dc38f20362c0dcee438d7f7d704b3dbb150dd1" + }, + { + "path": "README.md", + "bytes": 1899, + "sha256": "f49c1d76341da290ba9306d3afee0e7313aee83194a382478b270b496eb940c7" + }, + { + "path": "identities.json", + "bytes": 981, + "sha256": "85c9037502d9a2a5ddce7ee80e41e8b9e9de065cc172956266229da7646fcc28" + } + ] +}