Files
orca/src/shared/files-runtime-capabilities.ts
T
NeilandClaude 923bea9269 fix(files): open host files outside workspaces for any client with terminal access (#33958)
* fix(files): open host files outside workspaces for any client with terminal access

Paired clients that can open terminals on a host can already read and write
anything its user can, so the per-terminal provenance gate on files outside
workspaces protected nothing. The host now grants any existing file outside
its workspaces; older hosts get a clear update message instead of a refusal.

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(files): refuse SSH, device and WSL-home paths instead of misreporting them

Co-Authored-By: Claude <noreply@anthropic.com>

* perf(files): size grant digests to the file and skip status checks for local fallbacks

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(files): read procfs files whose stat reports size 0

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-26 16:18:09 -07:00

22 lines
922 B
TypeScript

import {
FILE_WRITE_DISK_PRECONDITION_RUNTIME_CAPABILITY,
FILE_WRITE_IDENTICAL_RUNTIME_CAPABILITY
} from './file-write-disk-precondition'
// Why: older runtimes strip mutation owner fields, so clients must fence writes before RPC.
export const FILE_MUTATION_OWNERSHIP_RUNTIME_CAPABILITY = 'files.mutation-ownership.v1' as const
export const FILE_MUTATION_OWNERSHIP_UPDATE_REQUIRED_MESSAGE =
'Remote file changes require a newer Orca server. Update the HUB and try again.'
export const FILE_DOC_PREVIEW_RUNTIME_CAPABILITY = 'files.readDocPreview' as const
export const FILES_RUNTIME_CAPABILITIES = [
'files.pathsExist',
'files.resolve-terminal-path.cross-workspace.v1',
'files.resolve-terminal-path.absolute-files.v1',
FILE_DOC_PREVIEW_RUNTIME_CAPABILITY,
FILE_WRITE_DISK_PRECONDITION_RUNTIME_CAPABILITY,
FILE_WRITE_IDENTICAL_RUNTIME_CAPABILITY,
FILE_MUTATION_OWNERSHIP_RUNTIME_CAPABILITY
] as const