srift-transfer 2.2.13 → 2.2.14
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.
- package/README.md +9 -0
- package/dist/daemon.js +12 -2
- package/dist/index.js +19 -4
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -37,6 +37,15 @@ The user opens the link in any web browser or runs `curl -OJ https://srift.app/d
|
|
|
37
37
|
|
|
38
38
|
**Session** transfers are end-to-end encrypted with **AES-256-GCM**, keys derived locally (PBKDF2-SHA256, 100,000 iterations) and never sent to us.
|
|
39
39
|
|
|
40
|
+
> **⚠️ The sender's daemon must be alive for the link to work.**
|
|
41
|
+
> SRIFT keeps no server-side copy — the daemon streams the file from your disk
|
|
42
|
+
> on demand. It runs in the background and survives your command exiting, so
|
|
43
|
+
> the link stays live afterwards. But if the daemon stops (machine sleeps or
|
|
44
|
+
> reboots, or `srift daemon stop`) the link returns `503 sender is offline`.
|
|
45
|
+
> This is the direct trade-off for zero retention: nothing is stored, so
|
|
46
|
+
> nothing can be served once the source goes away. If you need a link that
|
|
47
|
+
> outlives your machine, use storage — SRIFT is a relay.
|
|
48
|
+
|
|
40
49
|
Public `quick-share` links are a deliberate exception, and it's worth being precise: the link is designed to be opened by any browser, `curl` or `wget` — clients that hold no key and run no SRIFT code. End-to-end encryption is therefore impossible on that path by definition. What SRIFT guarantees for quick-share is **zero retention**: bytes stream from the sender straight to the open HTTP response, are never written to SRIFT storage, and are served `Cache-Control: no-store`. If you need the relay to be unable to read the content, use a session transfer instead of a public link.
|
|
41
50
|
|
|
42
51
|
---
|
package/dist/daemon.js
CHANGED
|
@@ -254,7 +254,11 @@ srift_quick_share({ filePath: "/abs/path/file.zip" })
|
|
|
254
254
|
\u2192 they open it in any browser, or run:
|
|
255
255
|
curl -OJ <downloadUrl>
|
|
256
256
|
wget --content-disposition <downloadUrl>
|
|
257
|
-
\u2192
|
|
257
|
+
\u2192 IMPORTANT: the local daemon seeds the file. It keeps running in the
|
|
258
|
+
background after your tool call returns, so the link stays live. But if
|
|
259
|
+
the daemon stops (machine sleeps/reboots, or 'srift daemon stop') the link
|
|
260
|
+
returns 503 "sender is offline" \u2014 SRIFT stores no copy server-side.
|
|
261
|
+
Tell the user to download while their machine is on.
|
|
258
262
|
\`\`\`
|
|
259
263
|
|
|
260
264
|
**Open a long-lived collaboration room:**
|
|
@@ -487,7 +491,13 @@ The peer must call srift_accept_transfer with this fileId.`;
|
|
|
487
491
|
``,
|
|
488
492
|
`Give the URL to the user \u2014 they open it in any browser, or run:`,
|
|
489
493
|
` curl -OJ "${url}"`,
|
|
490
|
-
|
|
494
|
+
``,
|
|
495
|
+
`The daemon seeds this file from disk and keeps running in the`,
|
|
496
|
+
`background, so the link stays live after this call returns.`,
|
|
497
|
+
`It stops working if the daemon stops (machine sleeps/reboots, or`,
|
|
498
|
+
`\`srift daemon stop\`) \u2014 SRIFT keeps no server-side copy, so the link`,
|
|
499
|
+
`then returns 503 "sender is offline". Tell the user to grab it while`,
|
|
500
|
+
`this machine is on.`
|
|
491
501
|
].join("\n");
|
|
492
502
|
}
|
|
493
503
|
case "srift_send_chat":
|
package/dist/index.js
CHANGED
|
@@ -352,7 +352,11 @@ srift_quick_share({ filePath: "/abs/path/file.zip" })
|
|
|
352
352
|
\u2192 they open it in any browser, or run:
|
|
353
353
|
curl -OJ <downloadUrl>
|
|
354
354
|
wget --content-disposition <downloadUrl>
|
|
355
|
-
\u2192
|
|
355
|
+
\u2192 IMPORTANT: the local daemon seeds the file. It keeps running in the
|
|
356
|
+
background after your tool call returns, so the link stays live. But if
|
|
357
|
+
the daemon stops (machine sleeps/reboots, or 'srift daemon stop') the link
|
|
358
|
+
returns 503 "sender is offline" \u2014 SRIFT stores no copy server-side.
|
|
359
|
+
Tell the user to download while their machine is on.
|
|
356
360
|
\`\`\`
|
|
357
361
|
|
|
358
362
|
**Open a long-lived collaboration room:**
|
|
@@ -479,7 +483,13 @@ The peer must call srift_accept_transfer with this fileId.`;
|
|
|
479
483
|
``,
|
|
480
484
|
`Give the URL to the user \u2014 they open it in any browser, or run:`,
|
|
481
485
|
` curl -OJ "${url}"`,
|
|
482
|
-
|
|
486
|
+
``,
|
|
487
|
+
`The daemon seeds this file from disk and keeps running in the`,
|
|
488
|
+
`background, so the link stays live after this call returns.`,
|
|
489
|
+
`It stops working if the daemon stops (machine sleeps/reboots, or`,
|
|
490
|
+
`\`srift daemon stop\`) \u2014 SRIFT keeps no server-side copy, so the link`,
|
|
491
|
+
`then returns 503 "sender is offline". Tell the user to grab it while`,
|
|
492
|
+
`this machine is on.`
|
|
483
493
|
].join("\n");
|
|
484
494
|
}
|
|
485
495
|
case "srift_send_chat":
|
|
@@ -2913,7 +2923,7 @@ var __filename = fileURLToPath2(import.meta.url);
|
|
|
2913
2923
|
var __dirname = path3.dirname(__filename);
|
|
2914
2924
|
var DAEMON_PORT3 = parseInt(process.env.SRIFT_DAEMON_PORT || "3822", 10);
|
|
2915
2925
|
var DAEMON_URL3 = `http://127.0.0.1:${DAEMON_PORT3}`;
|
|
2916
|
-
var CLI_VERSION = "2.2.
|
|
2926
|
+
var CLI_VERSION = "2.2.14";
|
|
2917
2927
|
function parseDuration(s) {
|
|
2918
2928
|
if (!s) return 0;
|
|
2919
2929
|
const m = /^(\d+(?:\.\d+)?)\s*(ms|s|m|h|d)?$/i.exec(s.trim());
|
|
@@ -4538,7 +4548,12 @@ Everything below works without tokens, OAuth, or API keys.
|
|
|
4538
4548
|
\u2192 the user opens it in any browser, or downloads via:
|
|
4539
4549
|
curl -OJ https://srift.app/d/<token>
|
|
4540
4550
|
wget --content-disposition https://srift.app/d/<token>
|
|
4541
|
-
\u2192
|
|
4551
|
+
\u2192 the daemon keeps seeding in the background after this command exits.
|
|
4552
|
+
The link stays live while that daemon is running. If it is stopped
|
|
4553
|
+
(srift daemon stop, reboot, laptop sleep) the link returns 503
|
|
4554
|
+
"sender is offline" \u2014 SRIFT keeps no server-side copy of the file.
|
|
4555
|
+
For a link that must outlive your machine, upload it somewhere that
|
|
4556
|
+
does retain the bytes; SRIFT is a relay, not storage.
|
|
4542
4557
|
|
|
4543
4558
|
\u2500\u2500\u2500\u2500 Open a long-lived collaboration room \u2500\u2500\u2500\u2500
|
|
4544
4559
|
srift session start --name "AI-Collab"
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "srift-transfer",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.14",
|
|
4
|
+
"mcpName": "app.srift/srift",
|
|
4
5
|
"description": "Zero-config, zero-token peer-to-peer secure file transfer, encrypted chat, and Model Context Protocol (MCP) server for AI coding agents (Claude, Cursor, Windsurf, Continue, Zed) and developers. End-to-end AES-256-GCM encrypted.",
|
|
5
6
|
"keywords": [
|
|
6
7
|
"mcp",
|