@muvon/octofs 0.13.0 → 0.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +7 -2
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -5,6 +5,7 @@
5
5
  **Give your AI assistant filesystem superpowers**
6
6
 
7
7
  [![CI](https://github.com/muvon/octofs/actions/workflows/ci.yml/badge.svg)](https://github.com/muvon/octofs/actions/workflows/ci.yml)
8
+ [![Coverage](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmuvon%2Foctofs%2Fbadges%2Fcoverage.json&style=flat-square)](https://github.com/muvon/octofs/actions/workflows/ci.yml)
8
9
  [![Rust](https://img.shields.io/badge/Rust-1.95+-orange.svg?logo=rust)](https://www.rust-lang.org)
9
10
  [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)
10
11
  [![MCP](https://img.shields.io/badge/MCP-2026--07--28-green.svg)](https://modelcontextprotocol.io)
@@ -300,7 +301,8 @@ octofs mcp --path ssh://deploy@example.com/var/www/app --ssh-key ~/.ssh/id_ed255
300
301
  view path="ssh://deploy@example.com/etc/nginx/nginx.conf"
301
302
  ```
302
303
 
303
- - **Authentication** — fully automatic, like OpenSSH, honoring `~/.ssh/config`: the agent your config names for the host (`IdentityAgent`, e.g. 1Password) or `$SSH_AUTH_SOCK`, then key files — `--ssh-key` if given, the host's `IdentityFile` entries, then the defaults in `~/.ssh` (`id_ed25519`, `id_ecdsa`). If plain `ssh host` works on your machine, octofs works too — nothing to configure. Passphrase-protected key files are not supported directly; use an agent instead.
304
+ - **OpenSSH config** — host aliases are resolved through the local OpenSSH config (including `Include` and `Match`) and honor `HostName`, `User`, `Port`, and a single `ProxyJump`. Explicit URL values win, so both `ssh://dev/path` and `ssh://user@example.com:2222/path` work as expected. Multi-hop `ProxyJump` and `ProxyCommand` routing are rejected with a clear error.
305
+ - **Authentication** — uses the host's `IdentityAgent` (e.g. 1Password) or `$SSH_AUTH_SOCK`, then key files — `--ssh-key` if given, the host's `IdentityFile` entries, then the defaults in `~/.ssh` (`id_ed25519`, `id_ecdsa`). Passphrase-protected key files are not supported directly; use an agent instead.
304
306
  - **RSA keys are not supported** — the Rust `rsa` crate has an unfixed timing side-channel (Marvin attack, [RUSTSEC-2023-0071](https://rustsec.org/advisories/RUSTSEC-2023-0071)), so octofs is built without RSA entirely. Use an ed25519 key instead (`ssh-keygen -t ed25519`); ecdsa also works. RSA-only setups fail with a clear error naming the key.
305
307
  - **Host keys** — verified against `~/.ssh/known_hosts` with the OpenSSH `accept-new` policy: unknown hosts are recorded on first use, a changed key fails closed.
306
308
  - **`--ssh-timeout SECS`** — connection timeout (default 30). Connections are pooled per host, kept alive with transport keepalives, and reconnected automatically if they drop.
@@ -482,7 +484,10 @@ finish within about 10 seconds:
482
484
  If a command is still running at that boundary, the same process continues in
483
485
  the background. The response returns its PID and linked output resource, and a
484
486
  completion notification arrives when it exits. There is no `background` flag
485
- and the command is never killed or restarted during the handoff.
487
+ and the command is never killed or restarted during the handoff. Multiple
488
+ distinct commands may run concurrently, including from the same working
489
+ directory. An exact duplicate command in the same working directory is rejected
490
+ while the first copy is still running.
486
491
 
487
492
  > On Windows, shutdown cleanup terminates only direct child processes (no Unix
488
493
  > process-group semantics); use `taskkill /PID <pid> /T` for process trees.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@muvon/octofs",
3
- "version": "0.13.0",
3
+ "version": "0.14.1",
4
4
  "description": "Standalone MCP filesystem tools server \u2014 view, edit, shell, workdir.",
5
5
  "mcpName": "io.github.Muvon/octofs",
6
6
  "bin": {