Source: https://ai-creator.top/resources/video-editing-agent-transaction-boundary-deepseek-harness/

[AI Creator](https://ai-creator.top/)[Resources / Field Notes](https://ai-creator.top/resources/)

Pinned source · Runner replay · September 8, 2026

# A video-editing Agent needs a transaction boundary.

[dsh-timeline-studio-plugin](https://github.com/MartinDelophy/dsh-timeline-studio-plugin/blob/201ccc563bcbccac6f5a0b88fc2b138495dc6e08/src/index.js) connects DeepSeek Harness to Timeline Studio without pretending that a language model should manipulate a project by intuition. Its source defines seven narrow tools that delegate inspection, diff, writes and rendering to Timeline Studio. This review replays six runner-boundary tests and distinguishes those new results from the upstream historical render report.

Published August 18, 2026  
Reviewed September 8, 2026  
By Martin Delophy  
Open source · Agent architecture · Video editing

BY [Martin Delophy](https://ai-creator.top/about/) · PUBLISHED Aug 18, 2026 · REVIEWED Sep 8, 2026 · **ENGINEERING FIELD NOTE** · [TESTING METHOD](https://ai-creator.top/about/#testing-method) ·

![Concept illustration of the plugin connecting project inspection, timeline operations and intended MP4 verification; not a recorded test result](https://ai-creator.top/resources/articles/dsh-timeline-studio-plugin-transaction-boundary.webp)

Concept illustration of the intended inspect, diff, apply and render workflow. It is not a screenshot or retained artifact from the Harness E2E test.

**THE SHORT VERSION**

An editing Agent should not own the editor's rules. It should express intent through a small, testable contract while Timeline Studio remains responsible for project truth.

01

## This is an action bridge, not another editor

The tempting way to integrate an Agent with a video editor is to build a second editing surface around the model: another panel, another representation of tracks, another set of partial rules. That is also how three versions of the same product logic begin to drift apart. The plugin takes a thinner position. DeepSeek Harness owns discovery, validation, cancellation and model-facing results. The plugin launches Timeline Studio's command runner. Timeline Studio owns project parsing, edit validation, transactional writes and rendering.

The plugin is mounted inside Harness and does not add a separate visual panel. It also bundles the `edit-timeline-studio` Agent Skill, so the model receives both the tools and the operating guidance required to use them responsibly. The browser editor remains the place for visual preview, WebGPU features and composition that still needs direct human judgment.

DeepSeek HarnessDSH pluginTimeline command layer.timeline + MP4

A thin adapter is easier to trust because there is one implementation of editing semantics—not one in the editor, one in a plugin and one hidden in prompts.

Keep the edit reversible

02

## Seven tools are enough when their boundaries are honest

The [seven tool definitions at commit `201ccc5`](https://github.com/MartinDelophy/dsh-timeline-studio-plugin/blob/201ccc563bcbccac6f5a0b88fc2b138495dc6e08/src/index.js#L26-L88) keep the model-facing API small. Four read tools inspect a project, track, clip or transcript. One previews a semantic project diff. One applies a batch. One renders. That separation gives the Agent a predictable rhythm: understand before proposing, preview before writing and verify after changing.

**project\_inspect**Read dimensions, revision, tracks and portable project structure.

**track\_inspect**Examine one track without expanding the entire archive.

**clip\_inspect**Resolve stable clip identity, timing and source offsets.

**transcript\_inspect**Read speech evidence needed for caption and editorial decisions.

**project\_diff**Run the real command registry as a dry run without writing output.

**project\_apply / render**Apply a validated batch, then produce and verify the supported MP4.

A dry run matters only if it exercises the same reducers and revision rules as the real write. The [adapter forwards diff and apply](https://github.com/MartinDelophy/dsh-timeline-studio-plugin/blob/201ccc563bcbccac6f5a0b88fc2b138495dc6e08/src/index.js#L62-L76) to `project.diff` and `project.run`; it does not implement a second reducer. The separate [September 7 CLI case](https://ai-creator.top/resources/from-creative-brief-to-editable-video-timeline-skill/) compares an actual preview with a saved write. That case does not run the Harness adapter. Also, “diff before apply” is guidance in the tool description: this adapter does not retain a token proving a previous diff succeeded.

Every tool answers one stage of the workflow and can fail before a destructive ambiguity becomes a file.

03

## The transaction begins with revision and identity

Editing is retry-heavy. An Agent call may time out after the command has already written a result. A user may change the project between inspection and apply. Without explicit identity, a retry can move the same clip twice; without a base revision, an apparently valid plan can overwrite a newer edit. The plugin uses both.

A successful non-empty operation batch increments the project revision once. Reusing an already-applied operation ID is an idempotent no-op. A stale base revision carrying new operations fails. If validation or any operation fails, the batch does not leave a half-edited archive behind. Source projects are not overwritten by default; a new editable project becomes the result.

The [separate CLI handoff record](https://ai-creator.top/resources/evidence/2026-09-07/editorial-workflows/results/report.json) verifies revision one, a repeated operation ID producing no new edit, and a stale new operation returning `REVISION_CONFLICT`. It uses Timeline Studio commit `68980d1` directly, so it is supporting evidence for the command layer, not a rerun of the historical Harness test. For this plugin review, inspect the [fixed `201ccc5` snapshot](https://github.com/MartinDelophy/dsh-timeline-studio-plugin/tree/201ccc563bcbccac6f5a0b88fc2b138495dc6e08) rather than a moving branch.

Idempotency and optimistic concurrency are ordinary backend ideas. In Agent-controlled creative software, they separate a retry from an accidental second edit.

04

## The filesystem boundary is part of the product

A path argument is not permission. The plugin's `allowedRoots` setting is a real filesystem boundary for project, plan, output and asset paths. The [runner resolves real paths and checks project, imported-asset and output paths](https://github.com/MartinDelophy/dsh-timeline-studio-plugin/blob/201ccc563bcbccac6f5a0b88fc2b138495dc6e08/src/command-runner.js#L21-L121). Existing output symlinks are rejected and new output parents are canonicalized. These are the path cases exercised below; this is not a complete security audit of arbitrary archive contents or filesystem races.

Cancellation is visible in the [child-process call](https://github.com/MartinDelophy/dsh-timeline-studio-plugin/blob/201ccc563bcbccac6f5a0b88fc2b138495dc6e08/src/command-runner.js#L124-L144): the runner passes the supplied `AbortSignal` to Node `execFile` and converts an abort into a canceled error. This review does not test cancellation or prove that every descendant FFmpeg process terminates. A separate executed case below verifies conversion of a deliberate `ok:false` child response into an error.

“Local-first” is incomplete without an enforceable root. A local process with unrestricted paths is not a privacy boundary.

05

## Six runner checks have a replayable record

On September 8, 2026, we ran six unchanged tests from [the pinned upstream command-runner suite](https://github.com/MartinDelophy/dsh-timeline-studio-plugin/blob/201ccc563bcbccac6f5a0b88fc2b138495dc6e08/test/command-runner.test.js). They call the real runner against the test file's synthetic child CLI. That child echoes arguments or deliberately returns `INVALID_PROJECT`; it does not load Timeline Studio's command engine.

**6**runner checks executed and passed

**1**registration test excluded by name

**0**Harness E2E runs in this review

The passing cases cover command/path forwarding, an out-of-root project, an out-of-root output, an out-of-root imported asset, an output symlink, and a structured child error. The [run report](https://ai-creator.top/resources/evidence/2026-09-08/deepseek-harness/results/report.json) records Node 22.14.0 on macOS arm64, exit status zero and six passed tests. The [unaltered TAP log](https://ai-creator.top/resources/evidence/2026-09-08/deepseek-harness/results/stdout.tap) lists each result. The full plugin declares Node 22.20+ or 24+; this isolated runner check does not establish full-plugin compatibility on the older runtime.

Download the [complete reproduction kit](https://ai-creator.top/resources/evidence/2026-09-08/deepseek-harness/deepseek-harness-runner-kit.zip), check [its checksums](https://ai-creator.top/resources/evidence/2026-09-08/deepseek-harness/SHA256SUMS), then run `node reproduce.mjs ./my-run`. The [method and limitations](https://ai-creator.top/resources/evidence/2026-09-08/deepseek-harness/README.md) explain the exact name filter and synthetic child boundary. The [source manifest](https://ai-creator.top/resources/evidence/2026-09-08/deepseek-harness/source-manifest.json) pins every included file. No account, package installation, model, API key or network call is needed. The registration test that imports `dsh-tools` is omitted; Cordis, media import, cancellation and rendering are not exercised.

## The old MP4 result remains a historical report

The [upstream testing document](https://github.com/MartinDelophy/dsh-timeline-studio-plugin/blob/201ccc563bcbccac6f5a0b88fc2b138495dc6e08/docs/testing.md#L32-L42) reports seven unit tests and one Harness/Cordis E2E pass on August 15, 2026, using Node 24.11.1, Harness rc.6, Cordis 4.0.1 and FFmpeg 8.0.1. It also explicitly says that generated media lived in the OS temporary directory and were not retained in the repository. No original run log or MP4 was available in the checked snapshot. Those counts are therefore attributed historical claims, not independently verified results from this review.

The [actual E2E definition](https://github.com/MartinDelophy/dsh-timeline-studio-plugin/blob/201ccc563bcbccac6f5a0b88fc2b138495dc6e08/test/deepseek-harness.e2e.test.js#L48-L75) creates a one-second synthetic blue visual, imports it, changes the ratio, inspects the result and requests a 180×320 render. Its [media assertions](https://github.com/MartinDelophy/dsh-timeline-studio-plugin/blob/201ccc563bcbccac6f5a0b88fc2b138495dc6e08/test/deepseek-harness.e2e.test.js#L129-L138) expect `hasAudio: false`, a nonempty MP4, positive duration and matching dimensions. They do not fully decode the MP4 or test an audio stream. Finding these assertions establishes what the test is written to check, not whether that historical run passed.

A different, retained example is the [September 7 archive-and-render case](https://ai-creator.top/resources/edit-timeline-project-file-before-browser-render/). Its [record](https://ai-creator.top/resources/evidence/2026-09-07/editorial-workflows/results/report.json) covers a six-second 180×320 slate-and-tone MP4, byte-preserved archive entries and full FFmpeg decoding. It executes the Timeline Studio CLI directly, without Harness or Cordis. It must not be presented as the missing artifact from the August plugin test.

The evidence has three distinct scopes: current runner execution, fixed-source inspection and an upstream historical E2E report. Only the first has a new execution log here.

Keep the human check

06

## The durable outcome is an editable project

The most important design choice is not technical. The plugin does not reduce video editing to “prompt in, MP4 out.” The rendered video is a deliverable; the versioned `.timeline` archive remains the record a person can reopen, review and change. That is why inspection, diff and apply are first-class tools instead of hidden implementation steps.

The intended workflow is concrete: inspect current state, preview a plan, write a new editable project and verify the output media. This review establishes a bounded part of that workflow and publishes enough source and execution detail to repeat it. A current full Harness integration still needs its own retained run and media artifacts.

The Agent is a collaborator at the boundary. It is not the source of truth for the project, the filesystem or the final media.

CONTINUE THROUGH THE EVIDENCE

## Related field notes

[**Edit a Timeline Archive Without Losing Its Media**Compare preserved archive bytes, a native render and a rejected caption.](https://ai-creator.top/resources/edit-timeline-project-file-before-browser-render/)[**One Video-Editing Plan Across Agent Channels**Inspect one committed move, its retry and a stale new request.](https://ai-creator.top/resources/one-video-editing-skill-across-agent-channels/)[**A Generation Plugin Should Return Media**Keep provider adapters outside timeline ownership.](https://ai-creator.top/resources/browser-video-editor-generation-plugin-media-boundary/)

## Questions people ask

Is this another video editor?

No. It is an action bridge for DeepSeek Harness. Timeline Studio remains the editor and owns deterministic project operations and supported rendering.

Why does the Agent need both diff and apply?

The diff is a real semantic dry run over the current project. It gives the Agent and user a reviewable preview before the same command registry writes a new archive.

What happens if the project changes before apply?

A plan with a stale base revision and new operation IDs fails. Previously applied operation IDs are idempotent no-ops, which makes retries safer.

## Inspect the bridge. Keep the project editable.

[Inspect the pinned test record](https://github.com/MartinDelophy/dsh-timeline-studio-plugin/blob/201ccc563bcbccac6f5a0b88fc2b138495dc6e08/docs/testing.md)[Open Timeline Studio](https://video-editor.ai-creator.top/)

**AI Creator**[Resources](https://ai-creator.top/resources/)[About](https://ai-creator.top/about/)[Privacy](https://ai-creator.top/privacy/)[Contact](https://ai-creator.top/contact/)
