feat(docs): support SSH-remote document workflows and mobile artifact delivery
- Dominant language
- TypeScript
- Stars
- 2.7k
- Forks
- 395
- Avg merge
- 21h 48m
- Merged PRs (30d)
- 776
Description
## Context
PR #3049 adds the local, no-plugin cindy_docs tool surface for PDF / Word / PowerPoint / Excel. The tool server receives remoteHostId and deliberately fails closed today because its workingDir then names a directory on another machine; treating it as a local path could read or write an unrelated local directory.
## Current gap
- SSH workspaces return REMOTE_SESSION_UNSUPPORTED for all six document tools.
- The Desktop Session has structured four-format artifact cards, but Mobile does not yet project the same document metadata/card or provide equivalent file-open/download behavior.
- Device-link control of a local Desktop task can still ask the local Agent to generate documents, but this is not SSH execution parity or Mobile artifact-card parity.
## Required design
- Define a host-owned remote file capability for bounded stat/read, exclusive or atomic write, and path confinement, backed by the existing remote-file-service / cc-manager channel. Do not let @cindy/mcps interpret remote path strings with local fs.
- Decide the execution location per format: pure JS DOCX/PPTX/XLSX generation and sheet parsing; HTML/PDF rendering that remains in the local isolated Chromium host; PDF inspection that remains in a memory/time-bounded process.
- Transfer inputs and outputs with explicit byte limits, timeouts, cancellation, and atomic no-overwrite semantics.
- Add Mobile presentation for the same real artifact metadata and a device-link-backed open/download path; do not invent QA or acceptance states.
## Acceptance matrix
- Claude Code, Codex, and Pi SSH sessions can generate and read each supported format without reading a same-named local path.
- Remote output uses the same default no-overwrite behavior as local output, including concurrent writers.
- HTML/PDF resources cannot escape the remote workdir or cause local network/session access.
- Mobile can display and retrieve the same four-format artifact delivery represented on Desktop.
- Disconnect, timeout, cancellation, oversized input, and partial upload tests leave no half-written output.
This is intentionally separate from #3049 because it crosses remote-file-service, cc-manager, device-link, Mobile, and the PDF host boundary; implementing it as an inline review fix would broaden the local document-tool PR into a new multi-end transport feature.
Contributor guide
Research direction
Start by mapping the existing remote-file-service and cc-manager channel, the six document tools, Desktop Session artifact cards, and the Mobile device-link flow. Use the acceptance matrix to define the boundaries for remote execution, transfer safety, isolation, cancellation, and artifact retrieval. Done means all listed SSH, mobile, concurrency, and failure-mode cases work without local-path access or partial output.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, typescript
- Domain
- backend, desktop-dev, distributed-systems, mobile-dev, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100