Skip to content

Releases

v0.1.2

Choose a tag to compare

@sixzjd sixzjd released this 10 Oct 04:51

Metadata only — no runtime code changed since v0.1.1.

Adds the two compatibility declarations a fixed-source catalog gate reads:

  • engines.node: ">=20", backed by CI now covering node 20 / 22 / 24 (all green) rather than asserted from reading the code.
  • dsh.compatibility.dshReleases marking 0.2.0-rc.2 compatible — the one release this plugin has actually been booted against, with its bundle scanned, served byte-identical, and exercised. Other releases are left undeclared, which the gate reads as unknown; declaring them would be inventing evidence.

dsh.compatibility is not a DSH field: the official DshManifest knows only manifestVersion, bundle, profile, and client, and every reader uses optional chaining, so upstream ignores this key. It exists for the dsh.store catalog.

Install

dsh plugin --profile web add dsh-folder-attach

npm latest is now 0.1.2, byte-identical to this tag.

Carries the v0.1.1 fix: mixed folder+image drops are pre-checked against the composer's own imageLimits projection instead of skipping straight to upload.

v0.1.1

Choose a tag to compare

@sixzjd sixzjd released this 09 Oct 17:28

Fixes the one known flaw in the folder drag/paste path.

What was wrong

A mixed drop (one folder + some images) took the folder as an @mention and handed the remaining files straight to createDrafts — skipping the client-side image pre-check the shipped intakeFiles runs. Nothing actually slipped through: the Host's validateImageBatch still refused an over-cap batch. But you got a late wire error instead of the composer's own "at most 20 images" message.

What changed

The pre-check is now mirrored for dropped batches, reading thresholds from the imageLimits projection — the same source the composer reads — rather than copying the defaults, and formatting sizes through the exported fileSizeText.

Two deliberate scope limits, both documented in the README:

  • It counts only the images in that drop. Already-attached images are not readable through any public face, so the notice can be looser than the composer's. The Host remains the authority on the per-message total.
  • Absent limits mean "cannot judge", not "unlimited": the drop proceeds and the Host decides, instead of the plugin silently blocking a valid batch.

useProjection is called through a fallback, so a renamed seam degrades to "no pre-check" rather than throwing and taking the whole entry down.

Guarded by a mutation-checked regression test: removing the check fails the suite.

Install

dsh plugin --profile web add github:sixzjd/dsh-folder-attach#v0.1.1

npm 0.1.1 is pending — the publish token lacks write access. dsh plugin --profile web add dsh-folder-attach still resolves to 0.1.0.

v0.1.0

Choose a tag to compare

@sixzjd sixzjd released this 09 Oct 03:40

Add folder references to the DeepSeek Harness web composer.

What you get

  • "Add folder" button left of the composer — opens the OS folder dialog on your machine and inserts @dir/
  • /folder slash command — same action
  • Drag or paste a folder — resolved by name through the same index that backs the @ completion menu

Install

dsh plugin --profile web add github:sixzjd/dsh-folder-attach

Then reload the browser page.

Why this exists

The shipped composer refuses dragged folders in a browser, because a browser never reveals a dropped folder's absolute path — only a desktop shell can map a File back to one, and @deepseek-ai/dsh ships no desktop app. This plugin asks the host instead, which is not sandboxed.

Uses only documented extension points. No upstream code is patched, and no globals are written.

Limitations

  • Dropped folders resolve by name inside the workspace only; anything else reports an error rather than guessing a path.
  • A drop inserts a plain @dir/ text mention, not the desktop app's folder chip.