Live human review, sessions and audit trails
FileHop lets an agent work on files that a person can open, inspect and continue editing in the desktop app. An agent can show its work while it progresses, rather than delivering only a final flattened export. Portable .fhproject projects retain editable content and assets; sessions organize the task and its review window; activity logs and histories explain what changed.
These capabilities require a compatible installed FileHop app and MCP server, appropriate shared-folder access and supported file/editor types. Discover the tools and schemas on that build first.
Keep the working project editable
Use project_create for new work or project_migrate for supported existing editor projects. Keep the returned project.fhproject manifest and its asset directory together. Choose a full editor profile such as imageEditor or videoEditor when the person should continue in that editor. A rendered PNG or MP4 alone does not retain the editable layers or timeline.
Read filehop://project-guide, inspect the project, and use typed revision-checked edits. Save coherent batches with summaries. Each successful save becomes a reviewable point; this is saved-state refresh, not a live stream of every unsaved agent thought or keystroke.
A clean open editor refreshes automatically after valid external project updates. A person can see the saved changes appear while the agent continues working. If the person has unsaved edits, FileHop preserves their draft and shows a conflict instead of silently replacing it. Re-inspect and reconcile; do not close the tab or discard their work to force a refresh.
Project exports have different support from desktop editing. See project capabilities and limitations. Render and inspect the relevant output as well as preserving the working source.
Show work in a desktop window
Discover desktop_tabs, then list running windows:
{"action":"list"}
Use a returned window ID to open the actual manifest path:
{
"action": "open",
"window_id": "<window ID returned by list>",
"path": "/Users/me/Shared/Poster/project.fhproject",
"background": false
}
A matching single-pane tab is reused. background: true opens without switching focus. Activate/close require the current tab ID and matching path; unsaved work prevents close. Only authorized files/tabs are exposed, and split tabs have additional restrictions.
Opening a tab confirms a UI action. It does not establish that its content has loaded, finished rendering or been reviewed by the person.
Organize a task with sessions
desktop_sessions is persistent task metadata around sources, working files and outputs. A session is not a window: it can survive a window closing and later be bound to a suitable live window. Attaching a file records its role; it neither moves it nor grants access.
Use the installed action schemas for this sequence:
- Create or resume.
createtakes a uniquekeyand a title; retrying the same creation key resumes that task. Uselist/inspectfor ongoing work. - Attach files. Use
attachwith rolessource,workingoroutput. Metadata changes require the session’s integerexpected_revision; inspect again when stale. - Choose a review window.
bindselects an existing window ID fromdesktop_tabs; discoverwindowfor the session-window action supported by that build.unbindreleases the binding without closing files. A closed window requires explicit rebinding. - Open work.
opennormally uses background tabs;present: truebrings the requested file forward for review. Do not keep stealing focus on every save. - Check readiness.
waittakes the expected file revision and, for projects when relevant, dependency revision. Optionaltab_idtargets the intended view. Dirty, conflicted or error panes cannot satisfy a rendered wait. - Hand off or resume. Discover
handofffor presenting the task’s deliverable.restorereopens permitted attached files and reports partial failures.transitionmarks a task active, completed or archived; lifecycle state is not a person’s approval.
Do not confuse the session’s metadata revision, a file’s content revision and a project’s dependency revision. They protect different state. Opening or restoring existing views also does not guarantee that every attached file rendered successfully.
Know what was actually reviewed
| Signal | What it establishes | What it does not establish |
|---|---|---|
| Tab opened | A permitted UI tab exists or was activated | Content readiness or approval |
wait with loaded_only: true | Expected content loaded | Rendering; it cannot record render evidence |
Rendered wait | The matching native surface rendered at the expected revision | Every slide/page/frame/audio segment was inspected |
wait with record_preview: true | Revision-bound native surface evidence, with its reported scope | A captured screenshot or human sign-off |
session_preview | Images and recorded evidence for a saved attached ordinary file | Complete-file coverage or human sign-off |
project_render / project_video_preview | A supported project preview or bounded audiovisual range | Inspection of the whole project/movie |
| Session completed/handoff | Agent workflow state or presentation of the result | The person accepted the work |
Evidence must be regenerated after changes. Read the renderer’s fidelity and scope, particularly approximate Word pagination and selected-slide/video-range previews.
Use session checkpoint to save an explicit review location: a slide, page, sheet/cell, text cursor, media position or supported project view. Restore by the named view_id where supported. A checkpoint is a navigation bookmark, not document bytes or evidence that the content was reviewed.
Trace what the agent did
FileHop records tool calls in its Agent activity log, including refused calls. tool_run uses the actual tool’s identity and normal checks; it does not bypass logging. activity_log gives the connected MCP session’s calls, statuses, timing, input/output paths, errors and whether Undo is still available. Follow its cursor to continue.
| Record | Use |
|---|---|
Agent activity log / activity_log | Trace operations, failures, output paths and available Undo |
File history / history_list, history_diff | Review saved content changes, revisions, author/source and summaries |
history_checkpoint | Capture before/after states when using an external editor; uncaptured bytes cannot be restored |
Named versions / history_save_version | Mark meaningful milestones without naming every small edit |
Project journal / project_journal, project_note | Resume decisions, notes, todos, saves, exports and reversions |
Project history / project_history, project_diff, project_revert | Compare or restore retained project revisions and available assets |
File context / context_read, context_write | Leave review comments and decisions without changing the file’s bytes |
The audit log is tamper-evident, not tamper-proof. It is not a recording of everything an agent does outside FileHop. Logged arguments are bounded and secrets/sensitive fields are redacted or summarized; this is an operation record, not a complete backup of file contents. A successful save can report a history warning if recording the entry failed; distinguish saved content from a recorded checkpoint. History restoration depends on retained snapshots and assets. Avoid promises of permanent retention or universal Undo.
Related files and multiple participants
Session link/unlink can record supported source-to-output dependencies. session_refresh explicitly refreshes a recorded relationship, such as table data feeding a document or deck chart, or an editable image composition feeding a video graphic. Inspect current source and target revisions first. A target changed since its baseline refuses automatic refresh; preview again afterward. This is an explicit refresh operation, not an unrestricted live synchronization guarantee.
Where available, session_participants supports explicit reader/editor participation. A client label is not authorization for a shared session, and joining does not expand file grants. Follow the installed token/invite schema and keep credentials out of comments or exported project content.
The useful handoff is the editable working file, relevant rendered output, a visible review location and a short account of changes and remaining issues. These let the person inspect and continue the work with its context intact.