fix(notebook): clarify viewImage execution paths - #1222
Conversation
Codex ReviewVerdict: mergeable No actionable findings. Summary: No concrete merge-blocking defects found in the pull request changes. Branch and pull request title checks are valid. |
8013dfc to
efee3cb
Compare
Codex ReviewVerdict: mergeable No actionable findings. Summary: The change is consistent with the notebook session-root and host-image path contract. No concrete merge-blocking defect was found. Static inspection only; no tests or project commands were run. |
efee3cb to
fe6a72e
Compare
Codex ReviewVerdict: mergeable No actionable findings. Summary: Static inspection found no concrete merge-blocking defect in the pull request changes. |
fe6a72e to
2d24adb
Compare
Codex ReviewVerdict: mergeable No actionable findings. Summary: Static inspection found no concrete merge-blocking defect introduced by this pull request. |
Keep host.viewImage scoped to the shared execution cwd and distinguish that capability from the durable Session workspace. Guide callers to reuse the relative path used when saving a generated file.
2d24adb to
f1174c5
Compare
Codex ReviewVerdict: mergeable No actionable findings. Summary: Static inspection found no concrete merge-blocking defect introduced by this pull request. Branch and title checks are valid. |
Problem
host.viewImage({ path })resolves a generated file relative to the shared execution workspace used by Python, R, and REPL. The control capability called that rootworkspaceCwd, even though the Agent-facing Notebook MCP already usesworkspaceCwdfor the durable Session cwd.That naming collision led the previous revision of this PR to bind the capability to
notebookSessionRoot. The change madedata/...happen to resolve, but also widened path authority to application-owned siblings such ashandoff,run.json, caches, and Frame storage.Proposed change
dataRootworkspaceCwdtoexecutionCwdhost.viewImageJavaScript contract camelCase and unchanged{ path }generically as relative to the current execution workspace, using the same relative path used to save a generated fileScope and non-goals
data/...orhandoff/...magic-prefix resolutionnotebookSessionRootOPEN_SCIENCE_HANDOFF_DIRcross-kernel transfer{ versionId }resolutionrun.json, or other persisted-data changesAcceptance criteria and validation
Checks run after the final rebase onto
origin/main(16ea4829, v0.15.1):npm test -- src/main/notebook/host-view-image-service.test.ts src/main/notebook/runtime-service.test.ts src/main/notebook/local-rpc-server.test.ts src/main/notebook/local-rpc-server.capabilities.test.ts src/main/notebook/session-aggregate.test.ts src/main/notebook/e2e.certification.test.ts src/main/host-sdk/help.test.ts src/main/skills/self-awareness-skill.test.ts src/main/runtime-electron-wiring.test.ts-> 8 files passed, 308 tests passed; one environment-gated file skipped (9 tests)npm run typecheck:node-> passednpm run lint-> 0 errors; 17 pre-existing Prettier warningsgit diff --check origin/main...HEAD-> passedThe impact classifier selects the full suite because
resources/skills/self-awareness/SKILL.mdhas no declared module owner. Per maintainer request, the complete localnpm testsuite was not run; exact-head PR CI is authoritative for the complete and platform lanes.Review focus
Please verify that the control capability receives
executionCwd = dataRootfor both root and delegated lanes, while the Agent-facing Notebook MCP retains its separate durable SessionworkspaceCwdmeaning.